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. };  
  • 相关阅读:
    移动触摸事件之二
    移动touch事件之一
    Phonegap创建项目语法
    JS自定义去除字符串左右两边的指定字符
    video标签常用属性及说明
    html5开发之viewport使用
    页面事件总结
    缓存与预取
    修改JQM的默认配置属性
    JQM事件详解
  • 原文地址:https://www.cnblogs.com/liangyc/p/8847703.html
Copyright © 2011-2022 走看看