算法笔记: 力扣#746 使用最小花费爬楼梯

问题描述


解法


分析

Python 实现

1
2
3
4
5
6
7
8
9
10
class :
def minCostClimbingStairs(self, cost):
"""
:type cost: List[int]
:rtype: int
"""
l2, l1 = 0, 0
for c in cost:
l2, l1 = l1, min(l2, l1)+c
return min(l2, l1)

Java 实现

1
2
3
4
5
6
7
8
9
10
11
12
class {
public int minCostClimbingStairs(int[] cost) {
int l2 = 0;
int l1 = 0;
for(int c : cost){
int d = (l1 < l2 ? l1 : l2) + c;
l2 = l1;
l1 = d;
}
return l1 < l2 ? l1 : l2;
}
}

时间复杂度

O(n).

空间复杂度

O(1).

链接


746. Min Cost Climbing Stairs
746. 使用最小花费爬楼梯
(English version) Algorithm Notes: Leetcode#746 Min Cost Climbing Stairs