大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。n<=39。
斐波拉契數列的定義:用f1, f2分別表示 fi−2, fi−1,用ret表示fifi,每次令ret = f1 + f2,sum就表示fi得到fn,然後把f1, f2分別更新為fi−1, fi, 依次類推,sum的值就是最終fn的值。
int型整數只能儲存f0→f46,下面是這個區間的斐波拉契數列的值:
0: 01: 1
2: 1
3: 2
4: 3
5: 5
6: 8
7: 13
8: 21
9: 34
10: 55
11: 89
12: 144
13: 233
14: 377
15: 610
16: 987
17: 1597
18: 2584
19: 4181
20: 6765
21: 10946
22: 17711
23: 28657
24: 46368
25: 75025
26: 121393
27: 196418
28: 317811
29: 514229
30: 832040
31: 1346269
32: 2178309
33: 3524578
34: 5702887
35: 9227465
36: 14930352
37: 24157817
38: 39088169
39: 63245986
40: 102334155
41: 165580141
42: 267914296
43: 433494437
44: 701408733
45: 1134903170
46: 1836311903
class
solution
return ans;}}
;
乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。
最簡單的動態規劃,考慮最後跳上第n階台階,有兩種方式往上跳:那麼f(i)表示該青蛙跳上乙個i級的台階總共跳法。故
f(i)=f(i−1)+f(i−2),f(0)=f(1)=1
,這就是變形版的斐波拉契數列啊,直接求解。
class
solution
return res;}}
;
乙隻青蛙一次可以跳上1級台階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法。
這裡是引用
class
solution
};
class
solution
};
學習:
pow (x, y)
求x
的y
次方,返回double
型別
我們可以用21的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個21的小矩形無重疊地覆蓋乙個2*n的大矩形,總共有多少種方法?
這裡是引用
class
solution
return res;}}
;
輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。
這題有很多做法,我選乙個時間複雜度與該整數二進位制**中1的個數正相關的演算法來講;首先,你必須知道如何消除二進位制中最後乙個位1,利用n &= (n - 1)就可以做到。然後看一下消了幾次n變成0,次數就是答案。
n &= (n - 1)具體的操作是把最後一位1變成0,後面的0變成1,與運算一下,最後一位1就消掉了。
class
solution
return count;}}
;
要注意,這題是不能用移位來求1的個數的,因為負數用補碼表示,而移位是算術移位,如果是負數移位後會在最高位補1,那麼就不能正確統計個數,而且程式會死迴圈,解決方法是把負數強制轉換為unsigned int,然後在執行移位,可以得到正確答案。
class
solution
return count;}}
;
給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。
這裡是引用
class
solution
};
劍指Offer66題之每日6題 第一天
在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。暴力法遍歷 根據加粗處資訊,從左下或者右上開始比較 時間複雜度 o 2n class solution return false 利用...
劍指Offer66題之每日6題 第七天
統計乙個數字在排序陣列 現的次數。1 遍歷,時間複雜度o n class solution return count 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。struct treenode class solution ...
劍指offer 66題 part1(1 6題)
在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數 這個題其實很簡單 左上角是最小的,右下角是最大的,如果我們從最大或者最小的地方開始查詢不是很方便,想一想是不是,因為有時候選擇是不確定...