矩形覆盖
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
- 思路
这道题其实仔细分析,和跳台阶的原理是一样的,如果没有看过跳台阶问题,可以参见http://blog.youkuaiyun.com/tsuixh/article/details/52802735
代码:
public class Solution {
public int RectCover(int target) {
if (target == 1){
return 1;
} else if(target == 2){
return 2;
} else if(target == 0) {
return 0;
}
int f1 = 1;
int f2 = 2;
for (int i = 3; i <= target; i ++ ) {
f2 += f1;
f1 = f2 - f1;
}
return f2;
}
}
给大家提供测试网址,在这里剑指offer可以选择对应的题目,然后将代码拷贝进去提交运行就可以了,欢迎大家交流,如果有更好的方法也欢迎大家提出!