我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
class Solution:
#依然是斐波那契数列的应用
#若是第一步横着放,则剩余的方式为f(n-2)
#若是第一步竖着放,则剩余的方式为f(n-1)
#f(n)=f(n-1)+f(n-2)
def rectCover(self, number):
# write code here
if number<=2:
return number
dp = [1,2]
for i in range(number-2):
dp.append(dp[-1]+dp[-2])
return dp[-1]