zoukankan      html  css  js  c++  java
  • LN : leetcode 746 Min Cost Climbing Stairs

    lc 746 Min Cost Climbing Stairs


    746 Min Cost Climbing Stairs

    On a staircase, the i-th step has some non-negative cost cost[i] assigned (0 indexed).

    Once you pay the cost, you can either climb one or two steps. You need to find minimum cost to reach the top of the floor, and you can either start from the step with index 0, or the step with index 1.

    Example 1:

    Input: cost = [10, 15, 20]
    Output: 15
    Explanation: Cheapest is start on cost[1], pay that cost and go to the top.
    

    Example 2:

    Input: cost = [1, 100, 1, 1, 1, 100, 1, 1, 100, 1]
    Output: 6
    Explanation: Cheapest is start on cost[0], and only step on 1s, skipping cost[3].
    

    Note:

    `cost` will have a length in the range `[2, 1000]`.
    Every `cost[i]` will be an integer in the range `[0, 999]`.
    

    DP Accepted

    dp[i]代表从i起跳所需要付出的最小代价,很明显dp[0] = cost[0],且dp1 = cost1,对于i >= 2的情况,dp[i] = min(dp[i-1] + cost[i], dp[i-2] + cost[i]),即跳到i点的那一步要么是一步跳要么是两步跳,取最小值,而这道题的答案很明显就是min(dp[cost.size()-1], dp[cost.size()-2])。

    class Solution {
    public:
        int minCostClimbingStairs(vector<int>& cost) {
            vector<int> dp(cost.size(), 0);
            dp[0] = cost[0];
            dp[1] = cost[1];
            for (int i = 2; i < cost.size(); i++) {
                dp[i] = min(dp[i-1] + cost[i], dp[i-2] + cost[i]);
            }
            return min(dp[cost.size()-1], dp[cost.size()-2]);
        }
    };
    
  • 相关阅读:
    Mysql 数据插入 修改删除
    Mysql 查询
    详解path.resolve 以及path.join
    谈一下_前端模块化
    正则表达式学习(二)
    正则表达式学习(一)
    HTML中块元素与内联元素的概念
    Deepin linux Compass.app安装
    Deepin MongoDB安装&使用总结
    【修复】当Deepin开机进入BusyBox时修复
  • 原文地址:https://www.cnblogs.com/renleimlj/p/8111553.html
Copyright © 2011-2022 走看看