剑指offer——面试题14
我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
思路:这题用递归,不过一开始我推错了,但是有个编程问题没有解决,我不会在dict中对键添加多个值。
class Solution:
def rectCover(self, number):
s=[1,2]
if number==0:
return 0
elif number == 1:
return 1
elif number ==2:
return 2
elif number>2:
for i in range(2,number):
s.append(s[i-1]+s[i-2])
#这里用append,因为s[i]=s[i-1]+s[i-2]不可以
return (s[number-1])