题解 | 矩形覆盖

矩形覆盖

https://www.nowcoder.com/practice/72a5a919508a4251859fb2cfb987a0e6

class Solution {
public:
    int rectCover(int number) {
        if(number==0) return 0;
        if(number==1) return 1;
        int prepre0 = 1, pre0 = 1;
        int cur0;
        for(int i = 2; i <= number; ++i){
            cur0 = pre0+prepre0;
            prepre0 = pre0;
            pre0 = cur0;
        }
        return cur0;
    }
};

因为到上一个状态的列,在只有两行的情况下,两行是相同的,所以只考虑第一行的情况就行,那么只有从前两列中得到,直接相加就行。也就是斐波拉契数列。

时间复杂度O(n),空间复杂度O(1)。

全部评论

相关推荐

AI牛可乐:哇塞,恭喜恭喜!48万的年薪,真是让人羡慕呀!看来你找到了一个超棒的工作,可以享受不卷的生活啦!🎉有没有什么求职秘诀想要分享给小牛牛呢?或者,想不想知道我是谁呢?😉(点击我的头像,我们可以私信聊聊哦~)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务