題目描述:求出1~13的整數中1出現的次數,並算出100~1300的整數中1出現的次數?為此他特別數了一下1~13中包含1的數字有1、10、11、12、13因此共出現6次,但是對於後面問題他就沒轍了。acmer希望你們幫幫他,並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數(從1 到 n 中1出現的次數)。
思路:遍歷?每乙個都算一下?暴力拆解!
public class solution
int sum=0;
for(int i=1;i<=n;i++)
return sum;
}public static int get1num(int n)else if(current==1)else
i=i*10;
}return count;
}}
題目一:斐波那契數列
題目描述:大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。
n<=39。
思路:f(n)=0 n=0;
f(n)=1 n=1;
f(n)=f(n-1)+f(n-2) n>1
public class solution
if(n==1)
return fibonacci(n-1)+fibonacci(n-2);
}}
題目二:青蛙跳台階問題
思路:如果只有一級台階的話,那麼只有一種跳法;如果是兩級台階,那麼既可以一級一級跳,也可以一下跳兩級。接下來我們來討論如果是n級台階,如果第一步跳一級,那麼跳法就是剩下的n-1級跳法數目,如果第一步跳兩級,那麼跳法數目就是剩下的n-2級跳法數目。
public class solution
if(target==1)
if(target==2)
return jumpfloor(target-1)+jumpfloor(target-2);
}}
題目三:**跳台階
思路:f(1)=1
f(2)=f(2-1)+f(2-2)
f(3)=f(3-1)+f(3-2)+f(3-3)
f(n)=f(n-1)+f(n-2)+...+f(n-n)
等於n的時候,有n種跳法,1級,2級...n級
f(n)=f(n-1)+f(n-2)+...+f(n-n)=f(0)+f(1)+f(2)+...+f(n-1)
f(n-1)=f(0)+f(1)+f(2)+...+f(n-2)
所以,f(n)=2*f(n-1)
即f(n)=1 (n=0)
f(n)=1 (n=1)
f(n)=2*f(n-1) (n>=2)
public class solution else if(target==1)
return 2*jumpfloorii(target-1);
}}
題目描述:我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋乙個2*n的大矩形,總共有多少種方法?
思路:斐波那契數列。
public class solution else if(target==1)else if(target==2)else
}}
2020 12 10 劍指offer打卡
題目描述 陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列 現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。解題思路 1.雜湊表 統計每個數出現的次數 時間複雜度o n 空間複雜度o n 2.排序法 先將陣列排序,可能的眾數肯定...
劍指offer 迴圈遞迴
class solution return res 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。class solution return res 乙隻青蛙一次可以跳上1級台階,也可以跳上2級 它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法...
劍指offer 樹 遞迴
輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 回溯 coding utf 8 class treenode def init self,x self.val x self.left none self.right none class solution de...