代码如下
func minCostClimbingStairs(cost []int) int {
dp := make([]int,len(cost)+1) //思路:设置一个花费数组dp,dp数组的长度等于之前的cost在加上1(1为楼顶元素)
dp[0] = 0
dp[1] = 0
for i := 2 ; i <= len(cost) ; i++ { //数组下标从2开始,因为dp数组长度为len(cost)+1,所以最后的下标为len(cost)
dp[i] = min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]) //和爬楼梯类似,可以爬一层也可以爬两层
}
return dp[len(cost)]
}
func min(a,b int) int {
if a < b {
return a
}else {
return b
}
}