矩形覆盖
题目描述
我们可以用2x1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2x1的小矩形无重叠地覆盖一个2xn的大矩形,总共有多少种方法?
解题思路
- 当n<=0时,f(n)=0;
- 当n<=2时,f(n)=n;
- 当n>2时,f(n)=f(n-1)+f(n-2);
一般结论
如果用1xm的方块覆盖mxn区域,递推关系式为
f(n) = f(n-1) + f(n-m),(n > m)。
AC代码
public class Solution {
public int RectCover(int target) {
if(target < 1){
return 0;
}else if(target <= 2){
return target;
}else{
return RectCover(target-1) + RectCover(target-2);
}
}
}
本文探讨了使用2x1小矩形无重叠覆盖2xn大矩形的方法总数,介绍了递归解法,并给出了AC代码示例。适用于算法学习与竞赛。
172万+

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



