Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 50ed104

Browse files
Update 0746.使用最小花费爬楼梯.md
1 parent 0a742d8 commit 50ed104

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

‎problems/0746.使用最小花费爬楼梯.md‎

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,35 @@ class Solution:
282282
return dp1 # 返回到达楼顶的最小花费
283283

284284
```
285+
动态规划(版本三)
285286

287+
```python
288+
class Solution:
289+
def minCostClimbingStairs(self, cost: List[int]) -> int:
290+
dp = [0] * len(cost)
291+
dp[0] = cost[0] # 第一步有花费
292+
dp[1] = cost[1]
293+
for i in range(2, len(cost)):
294+
dp[i] = min(dp[i - 1], dp[i - 2]) + cost[i]
295+
# 注意最后一步可以理解为不用花费,所以取倒数第一步,第二步的最少值
296+
return min(dp[-1], dp[-2])
297+
298+
```
299+
动态规划(版本四)
300+
301+
```python
302+
class Solution:
303+
def minCostClimbingStairs(self, cost: List[int]) -> int:
304+
n = len(cost)
305+
prev_1 = cost[0] # 前一步的最小花费
306+
prev_2 = cost[1] # 前两步的最小花费
307+
for i in range(2, n):
308+
current = min(prev_1, prev_2) + cost[i] # 当前位置的最小花费
309+
prev_1, prev_2 = prev_2, current # 更新前一步和前两步的最小花费
310+
return min(prev_1, prev_2) # 最后一步可以理解为不用花费,取倒数第一步和第二步的最少值
311+
312+
313+
```
286314
### Go
287315
```Go
288316
func minCostClimbingStairs(cost []int) int {

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /