矩形覆盖的问题

题目:

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

分析:

和青蛙跳台阶问题一个套路:

关键 的一个点是:

横着方一个2*1的小矩形和竖着放,n减少的不同,一个减少1,一个减少2

代码实现:

public class Solution {
    public int RectCover(int target) {
        if(target <= 0){
            return 0;
        }else if(target == 1){
            return 1;
        }else if(target == 2){
            return 2;
        }else {
            return RectCover(target - 1) + RectCover(target - 2);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/snailNL/article/details/81277095