剑指 offer:10、矩形覆盖

10. 矩形覆盖

题目描述

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

解题思路:

这仍然是一个斐波那契数列问题。

f(1) = 1
f(2) = 2
f(n) = f(n-1) + f(n-2)

解答:

class Solution {
public:
    int rectCover(int number) {
        if(number <= 0)
            return 0;
        if(number == 1)
            return 1;
        int first = 1, second = 2, third = 2;
        for(int i = 2; i < number; ++i)
        {
            third = first + second;
            first = second;
            second = third;
        }
        return third;
    }
};

大家有兴趣可以访问我的个人博客,不定时更新一些内容哦!

图片来自必应壁纸
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容