牛客网剑指offer刷题笔记:矩形覆盖(Java实现)

题目描述

我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?

Solution:

这道题目和跳台阶是一样的,因为对于n*2的大矩形来说,它其实就相当于n个台阶,然后小矩形是2*1,可以竖着填充大矩形,也可以横着填充大矩形。不管是竖着还是横着,每次只能相当于是填充一次,因为横竖不可能混着放。

CODE:

public class Solution {
    public int RectCover(int target) {

        if(target==0){
            return 0;
        }
        if(target==1){
            return 1;
        }
        if(target==2){
            return 2;
        }
        return RectCover(target-1)+RectCover(target-2);
    }
}

 

你可能感兴趣的:(剑指offer)