矩形覆盖

题目描述

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

代码

class Solution {
public:
    int rectCover(int number) {
        if (number <= 1) {
            return number;
        }
        //dp[n] = dp[n - 1] + dp[n - 2]
		int dp0 = 1, dp1 = 1, dp2;
        for (int i = 2; i <= number; ++i) {
            dp2 = dp1 + dp0;
            dp0 = dp1;
            dp1 = dp2;
        }
        return dp2;
    }
};

posted on 2017-03-11 19:48  jec  阅读(108)  评论(0编辑  收藏  举报

导航