美文网首页
每天一题LeetCode【第51天】

每天一题LeetCode【第51天】

作者: 草稿纸反面 | 来源:发表于2017-04-18 13:03 被阅读83次

    T70. Climbing Stairs【Easy

    题目

    你要爬楼梯。你面对的是一个 n 步可以走上去的楼梯。

    你每次可以走一步或者两步,那么你有几种不同的方式可以爬上去吗?

    注意:给出的 n 是一个正数

    思路

    简单说一个例子:

    走到 第53阶 可能有两种情况:
    ① 从 第52阶 一步走到 ② 从 第51阶 两步走到
    
    所以 到53阶方式数 = 到52阶方式数 + 到51阶方式数
    
    
    

    代码

    代码取自 Top Solution,稍作注释

    public int climbStairs(int n) {
        // 边界处理
        if(n == 0 || n == 1 || n == 2){return n;}
        // 设置一步和两步的初值
        int[] mem = new int[n];
        mem[0] = 1;
        mem[1] = 2;
        // 后一个等于前两个之和,看“思路”
        for(int i = 2; i < n; i++){
            mem[i] = mem[i-1] + mem[i-2];
        }
        return mem[n-1];
      }
    

    相关文章

      网友评论

          本文标题:每天一题LeetCode【第51天】

          本文链接:https://www.haomeiwen.com/subject/comfzttx.html