矩形覆盖(中等,递归)

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

比如n=3时,2*3的矩形块有3种覆盖方法:

示例1
输入
4
返回值
5
手算几个数找规律:1,2,3,5,8,…
f[i]=f[i-1]+f[i-2]

class Solution {
    
    
public:
    int rectCover(int number) {
    
    
        if(number==0||number==1||number==2) return number;
        long long x=1,y=2;
        number-=2;
        while(number--)
        {
    
    
         y+=x;x=y-x;
        }
       return y;
    }
};

猜你喜欢

转载自blog.csdn.net/weixin_43540515/article/details/114337070