76 - 小矩形覆盖大矩形
原创
©著作权归作者所有:来自51CTO博客作者小小猿若尘的原创作品,请联系作者获取转载授权,否则将追究法律责任
1. 可以用2×1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2×1的小矩形无重叠地覆盖一个2×n的大矩形,总共有多少种覆盖方法?请用递归的方式实现
def rectCover1(number):
if number == 0:
return 0
elif number == 1:
return 1
elif number == 2:
return 2
else:
return rectCover1(number - 1) + rectCover1(number - 2)
print(rectCover1(10))
2. 请用非递归的方式实现第1题
def rectCover2(number):
if number == 0:
return 0
elif number == 1:
return 1
elif number == 2:
return 2
else:
res = [0, 1, 2]
while len(res) <= number:
res.append(res[-1] + res[-2])
return res[number]
print(rectCover2(10))
77 - 乘积最大子序列