矩形覆盖 --Java
问题:我们可以用2x1的小矩形横着或者竖着去覆盖更大的矩形。请问用 n个2x1的小矩形无重叠地覆盖一个2xn的大矩形,总共有多少种方法?
public class Solution {
public int rectCover(int target) {
int sum=0;
int n1=2; //n1代表f(n-1)项
int n2=1; //n2代表f(n-2)项
if(target<=0){return 0;}
else if(target<=2){return target;}
else{
//递归方法
//return rectCover(target-1)+rectCover(target-2);
//用循环代替递归
for(int i=3;i<=target;i++){
sum = n1+n2;
n2=n1;
n1=sum;
}
return sum;
}
}
}