题目:
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
比如n=3时,2*3的矩形块有3种覆盖方法:
思路:
这个题其实是青蛙跳格子问题换了叙述方法,青蛙跳格子问题见:https://blog.csdn.net/qq_22498427/article/details/104708687
小格子可以一次竖着放一个,也可以横着放两个。因此就像 n 级台阶,青蛙一次可以跳两级,也可以跳一级。
class Solution:
def rectCover(self, number):
if number == 0:
return 0
ans0 = 1
ans1 = 1
for i in range(2,number+1):
temp = ans0 + ans1
ans0 = ans1
ans1 = temp
return ans1
来源:CSDN
作者:titake
链接:https://blog.csdn.net/qq_22498427/article/details/104708726