zoukankan      html  css  js  c++  java
  • leetcode每日一题(2020-06-13):70.爬楼梯

    题目描述:
    假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
    每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
    注意:给定 n 是一个正整数。

    今日学习:
    1.js初始化数组不同方法的区别


    题解:见过类似的题,动态规划没跑,数组或者常数存变量

    //n-2层有A种方法,n-1层有B种方法,n层只能由n-2层或n-1层上来,所以有A+B种方法
    //即动规数组dp[i] = dp[i-1] + dp[i-2]
    var climbStairs = function(n) {
        // 数组【注意new Array()的性能要优于[]】
        // const dp = new Array(n).fill(0)
        // dp[0] = 1
        // dp[1] = 2
        // for(let i = 2; i < n; i++) {
        //     dp[i] = dp[i - 1] + dp[i - 2]
        // }
        // return dp[n - 1]
    
        // 常数空间【不能忘了0和1的特殊情况】
        if(n == 0 || n == 1) return n
        let pre = 1, cur = 2, i = 2
        while(i < n) {
            let temp = cur
            cur = cur + pre
            pre = temp
            i++
        }
        return cur
    };
    
  • 相关阅读:
    C语言寒假大作战03
    C语言寒假大作战02
    C语言寒假大作战01
    C语言Ⅰ作业12—学期总结
    C语言Ⅰ博客作业11
    C语言Ⅰ博客作业10
    C语言Ⅰ博客作业09
    C语言Ⅰ博客作业08
    C语言ll作业01
    C语言寒假大作战04
  • 原文地址:https://www.cnblogs.com/autumn-starrysky/p/13111915.html
Copyright © 2011-2022 走看看