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

该问题的递推公式如下:
class Solution {public:int rectCover(int number) {if(number<3)return number;int a1=1,a2=2,tmp;for(int i=2;i<number;i++){tmp = a2;a2 = a1+a2;a1 = tmp;}return a2;}};//递归法,不推荐 耗时长class Solution {public:int rectCover(int number) {if(number < 3)return number;return rectCover(number - 2)+rectCover(number - 1);}};
- 时间复杂度:O(N)
- 空间复杂度:O(1)
