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. };  
  • 相关阅读:
    开源框架Tiny之内容组成
    开源框架Tiny之内容组成
    TinyUI组件开发示例
    一个Maven工程中,不同的模块需要不同的JDK进行编译
    Tiny中文分词
    在Linux下搭建Tiny开发环境
    业务流程引擎
    Tiny并行计算框架之复杂示例
    Tiny并行计算框架之实现机理
    笔记(一)
  • 原文地址:https://www.cnblogs.com/liangyc/p/8847703.html
Copyright © 2011-2022 走看看