时间限制:1秒 空间限制:32768K 热度指数:378835
本题知识点: 递归
题目描述
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
题目链接:题目链接
分析:这还是一个斐波那契的题目。放入小矩形块时共两种情况:
1.放入2*1的小矩形块,则剩下块的摆放方法为f(n-1)
2.放入1*2的小矩形块,此时第二列也必须放1*2的小块,则剩下块的摆放方法为f(n-2)
class Solution {
public:
int rectCover(int number) {
if (number == 0) return 0;
if (number == 1) return 1;
if (number == 2) return 2;
return rectCover(number-1) + rectCover(number-2);
}
};