题目描述
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
代码
与前两题相同
1.递归
public class Solution {
public int RectCover(int target) {
if(target<=2){
return target;
}
return RectCover(target-1)+RectCover(target-2);
}
}
2.循环
public class Solution{
public int RectCover(int target){
if(target<=2){
return target;
}
int pre1=1,pre2=1;
int result=0;
for(int i=2;i<=target;i++){
result=pre1+pre2;
pre2=pre1;
pre1=result;
}
return result;
}
}