題目
我們可以用*1的小矩形橫着或者豎着去覆寫更大的矩形。請問用n個*1的小矩形無重疊地覆寫一個*n的大矩形,總共有多少種方法?
代碼
可以将問題了解成
當1*2的格子的時候隻有一種可能
當2*2的格子時候有兩種可能
當3*2的時候取決于第一個怎麼放,當第一次擺放一塊 1*2 的小矩陣,則擺放方法總共為f(target - 1)當第一次擺放一塊2*1的小矩陣,則擺放方法總共為f(target-2)。
因為當擺放的為2*1的時候,當擺放為1*2的時候其下面的也就确定了
由此通過疊代就可以求出所有可能性
public class Solution {
public int RectCover(int target) {
int a = ;
int b = ;
int c=;
if(target==){
return ;
}
if(target==){
return ;
}
for(int i=;i<=target;i++){
c = a+b;
a=b;
b=c;
}
return c;
}
}