Skip to content

Commit 62eaa5c

Browse files
committed
feat: [Week 10-4] solve jump game
1 parent e5e8060 commit 62eaa5c

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

β€Žjump-game/Chaedie.pyβ€Ž

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
class Solution:
2+
"""
3+
Solution 1:
4+
λ’€μ—μ„œ λΆ€ν„° ν‘ΈλŠ” 방법이 μžˆμ„κ±°λΌ μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€.
5+
ν’€μ΄λŠ” μ„±κ³΅ν–ˆμ§€λ§Œ μ„±λŠ₯은 느린 5% λΌλŠ” 느린 μ„±λŠ₯을 λ³΄μž…λ‹ˆλ‹€.
6+
7+
Time: O(n * 10^5) - 10^5 λŠ” nums μ›μ†Œμ˜ μ΅œλŒ€ κ°’
8+
Space: O(n)
9+
"""
10+
11+
def canJump(self, nums: List[int]) -> bool:
12+
dp = [False for i in range(len(nums))]
13+
14+
dp[len(nums) - 1] = True
15+
16+
for i in range(len(nums) - 1 - 1, -1, -1):
17+
for j in range(1, nums[i] + 1):
18+
if i + j < len(nums) and dp[i + j]:
19+
dp[i] = True
20+
break
21+
22+
return dp[0]
23+
24+
"""
25+
Solution 2:
26+
Greedy - μ†”λ£¨μ…˜μ„ μ°Έκ³ ν–ˆμŠ΅λ‹ˆλ‹€.
27+
28+
Time: O(n)
29+
Space: O(1)
30+
"""
31+
32+
def canJump(self, nums: List[int]) -> bool:
33+
reach = 0
34+
for idx in range(len(nums)):
35+
if idx <= reach:
36+
reach = max(reach, idx + nums[idx])
37+
return reach >= len(nums) - 1

0 commit comments

Comments
Β (0)