思路:
// @Title: 使用最小花费爬楼梯 (Min Cost Climbing Stairs)
// @Author: qisiii
// @Date: 2024-09-22 23:09:10
// @Runtime: 0 ms
// @Memory: 42.2 MB
// @comment:
// @flag:
class Solution {
public int minCostClimbingStairs(int[] cost) {
int n=cost.length;
//dp代表爬到i所需要花费的最少的钱,是不需要支付i位置所在的钱的,因为那是爬往i+1所需要花费的
int[] dp=new int[n+1];
dp[0]=0;
dp[1]=0;
for(int i=2;i<=n;i++){
//比如爬到2,可以爬到1,花费1-2的钱,或者爬到0,花费0-2的钱
dp[i]=Math.min(dp[i-2]+cost[i-2],dp[i-1]+cost[i-1]);
}
return dp[n];
}
}