题目描述
题解思路
爬到第i层的最小花费 = min(爬到第i - 1层的最小花费 + 从第i - 1层向上爬的花费, 爬到第i - 2层的最小花费 + 从第i - 2层向上爬的花费)
设f[i]为爬到第i层的最小花费
则f[i] = min(f[i - 1] + cost[i - 1], f[i - 2] + cost[i - 2])
题解代码
func minCostClimbingStairs(cost []int) int {
// i - 2层的最小花费a i - 1层的最小花费b
a, b := 0, min(cost[0], cost[1])
for i := 2; i < len(cost); i++ {
a, b = b, min(b + cost[i], a + cost[i - 1])
}
return b
}
题目链接
https://leetcode.cn/problems/min-cost-climbing-stairs/description/