(Easy) Min Cost Climbing Stairs - LeetCode

时间:2019-08-21
本文章向大家介绍(Easy) Min Cost Climbing Stairs - LeetCode,主要包括(Easy) Min Cost Climbing Stairs - LeetCode使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Description:

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].
Accepted
93,418
Submissions
194,715

Solution

 class Solution {
    public int minCostClimbingStairs(int[] cost) {
        
        if(cost==null||cost.length==0){
            return 0;
        }
        
        int [] dp = new int[cost.length];
        
        dp[0]= cost[0];
        dp[1]= cost[1];
        
        for(int i =2; i< dp.length; i++){
            
            dp[i] = cost[i]+ Min(dp[i-1],dp[i-2]);
        }
        
        return Min(dp[cost.length-1],dp[cost.length-2]);
        
    }
    
    int Min(int a, int b){
        
        return a>b? b:a;
    }
}

原文地址:https://www.cnblogs.com/codingyangmao/p/11391352.html