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]);
        }
    };
    
  • 相关阅读:
    IPC---信号量
    static的用法
    模拟对话框的实现
    Dom选择器使用与调试记录
    第一个javascript脚本
    javascript基础总汇
    overflow的量两种模式
    固定标签到页面
    固定标签到某个标签
    固定标签(position: fixed)
  • 原文地址:https://www.cnblogs.com/renleimlj/p/8111553.html
Copyright © 2011-2022 走看看