原题链接
题目分析:
用n个21的小矩形覆盖2n大小的大矩形
规律:n=1时,f(n)=1
n=2时,f(n)=2
n=3时,f(n)=3
n=4时,f(n)=5
…
f(n)=f(n-1)+f(n-2)
1.列表法
class Solution:
def rectCover(self, number):
# write code here
list_number=[1,2]
if number<=2:
return number
for i in range(2,number):
list_number.append(list_number[-1]+list_number[-2])
return list_number[-1]
2.动态规划法
class Solution:
def rectCover(self, number):
# write code here
if number<=2:
return number
p=1
q=2
for i in range(2,number):
r=p+q
p=q
q=r
return r
递归法会导致超时