zoukankan      html  css  js  c++  java
  • 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:

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

    解题思路:

      最简单的动态规划,dp[i]代表到达这个楼梯的最小代价

      

    1. class Solution {  
    2. public:  
    3.     int minCostClimbingStairs(vector<int>& cost) {  
    4.         if(cost.size()==0) return 0;  
    5.         if(cost.size()==1) return cost[0];  
    6.         vector<int> dp;  
    7.         int n=cost.size();  
    8.         dp.reserve(n+1);  
    9.           
    10.         dp[0]=0;  
    11.         dp[1]=0;  
    12.           
    13.         for(int i=2;i<=n;i++){  
    14.             dp[i] = min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);   
    15.         }  
    16.           
    17.         return dp[n];  
    18.     }  
    19. };  
  • 相关阅读:
    前端页面存取数据
    jquery获取元素内容-text()和val()
    jquery选择器的一些处理
    Js判断一个字符串是否包含一个子串
    防止重复点击:
    Juery实现选项卡
    行间事件传this的问题:
    从数据库中导出数据到.csv文件
    表单限制只能填入正整数
    WAMP环境配置-Mysql安装
  • 原文地址:https://www.cnblogs.com/liangyc/p/8847703.html
Copyright © 2011-2022 走看看