746. 使用最小花费爬楼梯
代码
javascript
// 746. 使用最小花费爬楼梯:https://leetcode.cn/problems/min-cost-climbing-stairs/description/
// 输入:[10,15,20]
// 输出:15
export function minCostClimbingStairs (cost) {
const n = cost.length
let prev = 0
let curr = 0
let next = 0
for (let i = 2; i <= n; i++) {
next = Math.min(curr + cost[i - 1], prev + cost[i - 2])
prev = curr
curr = next
}
return curr
}
typescript
// 746. 使用最小花费爬楼梯:https://leetcode.cn/problems/min-cost-climbing-stairs/description/
// 输入:[10,15,20]
// 输出:15
export function minCostClimbingStairs (cost: number[]): number {
const n = cost.length
let prev = 0
let curr = 0
let next = 0
for (let i = 2; i <= n; i++) {
next = Math.min(curr + cost[i - 1], prev + cost[i - 2])
prev = curr
curr = next
}
return curr
}
测试代码
ts
import { expect, test } from 'vitest'
import { minCostClimbingStairs } from './typescript.ts'
import { minCostClimbingStairs as minCostClimbingStairsJs } from './javascript.js'
test(`minCostClimbingStairs`, () => {
expect(minCostClimbingStairs([10, 15, 20])).toBe(15)
expect(minCostClimbingStairs([1, 100, 1, 1, 1, 100, 1, 1, 100, 1])).toBe(6)
})
test(`minCostClimbingStairsJs`, () => {
expect(minCostClimbingStairsJs([10, 15, 20])).toBe(15)
expect(minCostClimbingStairsJs([1, 100, 1, 1, 1, 100, 1, 1, 100, 1])).toBe(6)
})