题解 | #最小花费爬楼梯#
最小花费爬楼梯
https://www.nowcoder.com/practice/6fe0302a058a4e4a834ee44af88435c7
package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param cost int整型一维数组 * @return int整型 */ func minCostClimbingStairs(cost []int) int { // dp[i]表示到达dp[i]的最低消费是多少 // dp[0] = cost[0] // dp[1] = cost[1] // dp[i] = min(dp(i-1)+cost[i-1],dp(i-2)+cost[i-2]) n := len(cost) dp := make([]int, n+1) // 可以认为是直接站在0,1台阶上作为起始状态,没有花费 dp[0], dp[1] = 0, 0 for i := 2; i <= n; i++ { dp[i] = min(dp[i-1]+cost[i-1], dp[i-2]+cost[i-2]) } // 到达顶部,即到达顶部之外的元素。因此顶部即 dp[n] return dp[n] } func min(x, y int) int { if x > y { return y } return x }