剑指 offer:10、矩形覆盖

2019-04-04  本文已影响0人  云中的Jason

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;
    }
};

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

图片来自必应壁纸
上一篇 下一篇

猜你喜欢

热点阅读