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. };  
  • 相关阅读:
    很经典的GDB调试命令,包括查看变量,查看内存
    ACE编程(2)
    GDB调试用列
    gdb调试带参数程序
    http与https的区别
    gdb使用方法简介
    TCP/IP三次握手和HTTP过程
    gdb调试器命令学习总结笔记
    Linux gdb设置和管理断点
    ATMEGA128单片机的软件远程升级(转)
  • 原文地址:https://www.cnblogs.com/liangyc/p/8847703.html
Copyright © 2011-2022 走看看