Skip to content

Commit c9460e4

Browse files
committed
solve(w02): 70. Climbing Stairs
1 parent 9d87e63 commit c9460e4

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# https://leetcode.com/problems/climbing-stairs/
2+
3+
class Solution:
4+
def climbStairs(self, n: int) -> int:
5+
"""
6+
[Complexity]
7+
- TC: O(n)
8+
- SC: O(1)
9+
10+
[Approach]
11+
dp[i] = i-th step์„ ์˜ค๋ฅผ ๋•Œ, ๊ฐ€๋Šฅํ•œ distinct ways์˜ ์ˆ˜
12+
= dp[i - 1] + dp[i - 2]
13+
์ด๋•Œ, dp[i - 1]๊ณผ dp[i - 2]๋งŒ ํ•„์š”ํ•˜๋ฏ€๋กœ, O(1) space๋กœ optimize ๊ฐ€๋Šฅํ•˜๋‹ค.
14+
prev1 = dp[i - 1]
15+
prev2 = dp[i - 2]
16+
์ฒซ ๋ฒˆ์งธ ๊ณ„๋‹จ์„ ์˜ค๋ฅด๋Š” ๋ฐฉ๋ฒ•์—๋Š” 1๊ฐœ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ, ์ดˆ๊นƒ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
17+
prev1 = 1
18+
prev2 = 0
19+
"""
20+
21+
prev1, prev2 = 1, 0
22+
for _ in range(n):
23+
prev1, prev2 = prev1 + prev2, prev1
24+
return prev1

0 commit comments

Comments
ย (0)