题解 | #最小花费爬楼梯#
最小花费爬楼梯
https://www.nowcoder.com/practice/6fe0302a058a4e4a834ee44af88435c7
package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param cost int整型一维数组 * @return int整型 */ func minCostClimbingStairs(cost []int) int { // write code here //采用动态规划:自下而上的方式计算值 //计算爬上最上面的成本 n := len(cost) if n == 1 { return cost[0] } if n == 2 { if cost[0] < cost[1] { return cost[0] } return cost[1] } //a,b,c分别表示到达所在位置需要的成本 var ( a = 0 b = 0 c = 0 ) //动态规划往上走 for i := 2; i <= n; i++ { t1 := a + cost[i-2] t2 := b + cost[i-1] if t1 > t2 { c = t2 } else { c = t1 } a = b b = c } return c }