zoukankan      html  css  js  c++  java
  • LeetCode 746. Min Cost Climbing Stairs (使用最小花费爬楼梯)

    题目标签:Dynamic Programming

      题目给了我们一组 cost,让我们用最小的cost 走完楼梯,可以从index 0 或者 index 1 出发。

      因为每次可以选择走一步,还是走两步,这里用 dynamic, 从index 2 (第三格楼梯开始) 计算每一个楼梯,到达需要用的最小cost。

      在每一个楼梯,只需要计算 从前面2格楼梯过来的cost, 和 从前面1格楼梯过来的 cost,哪个小。就选哪个叠加自己的cost。最后 index = len 的地方就是走到top 所用的最小cost。

    Java Solution:

    Runtime:  1 ms, faster than 99.86% 

    Memory Usage: 37.9 MB, less than 92.86%

    完成日期:08/15/2019

    关键点:dynamic programming

    class Solution {
        public int minCostClimbingStairs(int[] cost) {
            int len = cost.length;
            int [] mc = new int[len + 1];
            
            // base cases
            mc[0] = cost[0];
            mc[1] = cost[1];
            
            
            for(int i = 2; i <= len; i++) {
                int c = i == len ? 0 : cost[i];
                mc[i] = Math.min(mc[i-1] + c, mc[i-2] + c);
            }
            
            return mc[len];
        }
    }

    参考资料:LeetCode discuss

    LeetCode 题目列表 - LeetCode Questions List

    题目来源:https://leetcode.com/

  • 相关阅读:
    poj2481 线段树(单点更新)
    二叉查找树 hdu(3791 && 3999)
    计算机科学32个最重要的算法
    03最小路径覆盖问题
    02太空飞行计划问题
    hdu 2448最短路+最佳匹配
    poj1419 最大团
    hdu 3585(二分+最大团)
    hdu 3622 2-SAT
    hdu3592差分约束
  • 原文地址:https://www.cnblogs.com/jimmycheng/p/11525307.html
Copyright © 2011-2022 走看看