题目描述:
我们可以用2∗12*12∗1小矩形横着或者竖着去覆盖更大的矩形。请问用n个2∗12*12∗1的小矩形无重叠地覆盖一个2∗n2*n2∗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∗12*12∗1不显示中间的乘号,所以要在这个矩阵形式两边都加上 “$”,即$2*1$。
本文探讨了使用2*1的小矩形无重叠覆盖2*n大矩形的方法总数问题,提供了递归及优化算法解决方案,通过实例解析,帮助读者理解并掌握矩形覆盖的数学原理。
4934

被折叠的 条评论
为什么被折叠?



