《剑指offer》----矩形覆盖
题目描述
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
解题思路
计算f(1)=1,f(2)=2,f(3)=3,f(4)=5可知,该题依然是斐波那契数列。
源码
public class Solution {
public int RectCover(int target) {
if(target<=2){
return target;
}
int pre1=1,pre2=2;
int sum=0;
for(int i=3;i<=target;i++){
sum=pre1+pre2;
pre1=pre2;
pre2=sum;
}
return sum;
}
}