題目
我們可以用2×1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2×1的小矩形無重疊地覆蓋一個2×n的大矩形,總共有多少種方法?
程序核心思想
2*(n-1)的方塊用小方塊覆蓋只有一種方法(豎著),2×(n-2)的方塊用小方塊覆蓋只有一種方法(橫著)
或者
- 第一次把小方塊豎著放,剩下的排布方式為 f(target - 1)
- 第一次把小方塊橫著放,剩下的排布方式為 f(target - 2)
代碼
public class Solution { public int RectCover(int target) { if(target <= 0 ){ return 0; } if(target == 1){ return 1; }else if(target == 2){ return 2; }else{ return RectCover(target - 1) + RectCover(target - 2); } } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。