g0701_0800.s0746_min_cost_climbing_stairs.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g0701_0800.s0746_min_cost_climbing_stairs;
// #Easy #Array #Dynamic_Programming #Dynamic_Programming_I_Day_2
// #Level_1_Day_11_Dynamic_Programming #2022_03_25_Time_1_ms_(86.38%)_Space_43.6_MB_(54.14%)
/**
* 746 - Min Cost Climbing Stairs\.
*
* Easy
*
* You are given an integer array `cost` where `cost[i]` is the cost of ith
step on a staircase. Once you pay the cost, you can either climb one or two steps.
*
* You can either start from the step with index `0`, or the step with index `1`.
*
* Return _the minimum cost to reach the top of the floor_.
*
* **Example 1:**
*
* **Input:** cost = [10,15,20]
*
* **Output:** 15
*
* **Explanation:** You will start at index 1. - Pay 15 and climb two steps to reach the top. The total cost is 15.
*
* **Example 2:**
*
* **Input:** cost = [1,100,1,1,1,100,1,1,100,1]
*
* **Output:** 6
*
* **Explanation:** You will start at index 0.
*
* - Pay 1 and climb two steps to reach index 2.
* - Pay 1 and climb two steps to reach index 4.
* - Pay 1 and climb two steps to reach index 6.
* - Pay 1 and climb one step to reach index 7.
* - Pay 1 and climb two steps to reach index 9.
* - Pay 1 and climb one step to reach the top.
* The total cost is 6.
*
* **Constraints:**
*
* * `2 <= cost.length <= 1000`
* * `0 <= cost[i] <= 999`
**/
public class Solution {
public int minCostClimbingStairs(int[] cost) {
int[] dp = new int[cost.length];
dp[0] = cost[0];
dp[1] = cost[1];
for (int i = 2; i < cost.length; i++) {
dp[i] = cost[i] + Math.min(dp[i - 1], dp[i - 2]);
}
return Math.min(dp[cost.length - 1], dp[cost.length - 2]);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy