746. 使用最小花费爬楼梯
分析
- 状态定义:
- 定义
f[i]
为到达第i
个台阶的最低花费
- 定义
- 状态转移:
- 每次可以从前一个台阶爬上来,也可以从前两个台阶爬上来,选择花费较小的一种:
f[i] = min(f[i-1] + cost[i-1], f[i-2] + cost[i-2])
- 每次可以从前一个台阶爬上来,也可以从前两个台阶爬上来,选择花费较小的一种:
- 初始状态:
f[0] = 0
:第0
台阶为起点,不需要任何花费f[1] = 0
:第1
台阶为起点,也不需要任何花费
- 目标:
- 返回
f[n]
,即爬到楼梯顶部的最小花费
- 返回
时间复杂度
时间复杂度 O(n)
空间复杂度
空间复杂度为 O(n)
C++代码
|
|