题目描述
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
思路:f(n) = f(n-1)+f(n-2) n>2 斐波那契数列,值得注意的是f(0)=0 ,f(1)=1,f(2)=2,如果是斐波那契数列类型的题目,注意初始化条件的取值,多举例子验证。
public class Solution {
public int RectCover(int target) {
if(target<3) return target;
int first = 1;
int second = 2;
int index = 2;
int temp = 0;
while(index!=target){
temp = first + second;
first = second;
second = temp;
index++;
}
return temp;
}
}