剑指offer 矩形覆盖

矩形覆盖

题目

我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?

方法


边界值测试:输入为0,1,2

1
2
3
4
5
6
7
8
9
10
11
# -*- coding:utf-8 -*-
class Solution:
def rectCover(self, number):
# write code here
if number<2:
return number
dp=[0]*(number+1)
dp[1],dp[2]=1,2
for i in range(3,number+1):
dp[i]=dp[i-1]+dp[i-2]
return dp[-1]