自学内容网 自学内容网

LeetCode[简单] 70. 爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

思路

利用滚动数组

public class Solution {
    public int ClimbStairs(int n) { //滚动数组
        int f0 = 0, f1 = 0, f2 = 1;
        for(int i = 1; i <= n; i++)
        {
            f0 = f1;
            f1 = f2;
            f2 = f0 + f1;
        }
        return f2;
    }
}

复杂度分析

时间复杂度:循环执行 n 次,每次花费常数的时间代价,故渐进时间复杂度为 O(n)。
空间复杂度:这里只用了常数个变量作为辅助空间,故渐进空间复杂度为 O(1)。


原文地址:https://blog.csdn.net/Theolulu/article/details/142876609

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!