algorithm notes: leetcode#746 min cost climbing stairs

Problem


Solution


Analysis

Python implementation

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 implementation

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;
}
}

Time complexity

O(n)

Space complexity

O(1)


746. Min Cost Climbing Stairs
(中文版) 算法笔记: 力扣#746 使用最小花费爬楼梯