12.矩形覆盖

矩形覆盖

1.题目描述

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

2.思路

转化为斐波那契数列问题, f ( 0 ) = 0 , f ( 1 ) = 1 , f ( 2 ) = 2 , f ( n ) = f ( n 1 ) + f ( n 2 ) , n > = 3 f(0) = 0,f(1) = 1,f(2) = 2,f(n) = f(n-1) + f(n-2),n >= 3

3.代码

class Solution {
public:
    int rectCover(int number) {
        vector<int> res;
        res.resize(number+1);
        res[0] = 0;
        res[1] = 1;
        res[2] = 2;
        for(int i = 3;i <= number;++i){
            res[i] = res[i-1] + res[i-2];
        }
        return res[number];
    }
};
发布了71 篇原创文章 · 获赞 0 · 访问量 795

猜你喜欢

转载自blog.csdn.net/jiangdongxiaobawang/article/details/103917298
今日推荐