题解 | 矩形覆盖

矩形覆盖

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)。

全部评论

相关推荐

专业嗎喽:个人信息名字太大,合到电话邮箱那一栏就行,有党员写过党,剩下其他全删,站空太大了 把实习经历丰富,放最前面,然后是个人评价,技能之类的,然后是学校信息。项目经历最后面,可以就选一个自己擅长的。 现在是学校不是92就扣分的,没必要放前面。 然后现在看重实习经历>竞赛经历(校园经历)>课程项目经历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务