題目描述:大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。
詳細**:
# -*- coding:utf-8 -*-
class solution:
def fibonacci(self, n):
# write code here
if n <= 0:
return 0
if n == 1:
return 1
small = 0
big = 1
for i in range(2, n+1):
sum_i = small + big
small = big
big = sum_i
return big
覆蓋矩形:我們可以用21的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個21的小矩形無重疊地覆蓋乙個2*n的大矩形,總共有多少種方法?
詳細**:
# -*- coding:utf-8 -*-
class solution:
def rectcover(self, number):
# write code here
if number <= 0:
return 0
if number == 1:
return 1
if number == 2:
return 2
small, big = 1, 2
for i in range(3, number + 1):
sum_i = small + big
small = big
big = sum_i
return big
解題思路:數學歸納法,一共有2n−
12^
2n−1
種方法詳細**:
# -*- coding:utf-8 -*-
class solution:
def jumpfloorii(self, number):
# write code here
if number <= 0:
return 0
return 2**(number - 1)
劍指offer 遞迴與迴圈
寫乙個函式,輸入n,求fibonacci數列的第n 項。一般我們在求fibonacci數列的時候,可能會使用遞迴,但其實遞迴是乙個效率很低的解法。public int fibonacci int n if n 2 return fibonacci n 1 fibonacci n 2 例如在求f 10...
劍指offer 迴圈遞迴
class solution return res 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。class solution return res 乙隻青蛙一次可以跳上1級台階,也可以跳上2級 它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法...
劍指offer 遞迴和迴圈
遞迴雖然比較簡潔,但他同時也有顯著的缺點。遞迴由於是函式呼叫自身,而函式呼叫是有時間和空間的消耗的,每一次函式呼叫都需要在記憶體棧中分配空間以儲存引數 返回位址及臨時變數,而且往棧裡壓入資料和彈出資料都需要時間。1 斐波那契數列 0,1,1,2,3,5,8,13 遞迴 缺陷 重複計算的太多 int ...