题目描述:
我们可以用
2
∗
1
2*1
2∗1小矩形横着或者竖着去覆盖更大的矩形。请问用n个
2
∗
1
2*1
2∗1的小矩形无重叠地覆盖一个
2
∗
n
2*n
2∗n的大矩形,总共有多少种方法?
解题思路
如下图片所示:
代码:
一、递归
class Solution():
def juxing(self,number):
if 0 < number <= 2:
return number
return self.juxing(number-1) + self.juxing(number-2)
二、采用两个变量
class Solution:
def rectCover(self, number):
# write code here
if 0< number <= 2:
return number
pre1 = 1
pre2 = 2
cur = 0
for i in range(3,number+1):
cur = pre1 + pre2
pre1,pre2 = pre2,cur
return cur
注:今天写博客遇到个问题 :直接写
2
∗
1
2*1
2∗1不显示中间的乘号,所以要在这个矩阵形式两边都加上 “$”,即$2*1$
。