19. 使用最小花费爬楼梯
题解来源: 代码随想录
class Solution {
public int minCostClimbingStairs(int[] cost) {
if (cost == null) {
return 0;
}
int n = cost.length;
if(n == 1) {
return cost[0];
}
// dp[i] 代表上到第i个阶梯所需的最小花费
int[] dp = new int[n];
dp[0] = cost[0];
dp[1] = cost[1];
for (int i = 2 ; i < n; i++) {
// 可以从第 i - 1 或者第 i - 2步到达阶梯顶
dp[i] = Math.min(dp[i - 1],dp[i - 2]) + cost[i];
}
return Math.min(dp[n - 1], dp[n - 2]);
}
}
2021.12.21 21.26