Last updated 4 years ago
Was this helpful?
经典的0-1背包问题
4步走
dp[i] means min cost to reach i-th floor
2.dp[i] = cost[i] + min(dp[i - 1], dp[i - 2])
3.dp[0] = cost[0], dp[1] = cost[1]
4.dp[n]-> min(dp[n - 1], dp[n - 2])
public int minCostClimbingStairs(int[] cost) { int n = cost.length; int[] dp = new int[n]; dp[0] = cost[0]; dp[1] = cost[1]; for (int i = 2; i < n; i++) { dp[i] = cost[i] + Math.min(dp[i - 1], dp[i - 2]); } return Math.min(dp[n - 1], dp[n - 2]); }