java數據結構和算法(09)矩形覆蓋

  • 咱們能夠用2*1的小矩形橫着或者豎着去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法?完成以下代碼:
public class Solution {
    public int RectCover(int target) {

    }
}
複製代碼
  • 思路:數學概括法
    • n=1時,1種
    • n=2時,2種
    • n=3時,3種
    • n=4時,5種
  • 詳細分析看下圖

  • 代碼
public class Solution {
    public int RectCover(int target) {
         if(target<1){
            return 0;
        }else if(target==1){
            return 1;
        }else if(target==2){
            return 2;
        }else {
            return RectCover(target-1)+RectCover(target-2);
        }
    }
}
複製代碼
相關文章
相關標籤/搜索