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

答题框架
class Solution {
public:
int rectCover(int number) {
}
};
解题分析
和跳台阶类似,小矩形竖着放相当于跳一级台阶,横着放相当于跳两级台阶,所以可以复用跳台阶的代码。
代码
class Solution {
public:
int rectCover(int number) {
int a=1,b=0,c=0;
for(int i=1;i<=number;i++)
c=a+b,b=a,a=c;
return c;
}
};
探讨使用2×1小矩形无重叠覆盖2×n大矩形的方法总数,通过类比跳台阶问题,提出了一种递推算法实现解决方案。
244

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



