跳跃游戏II

跳跃游戏II

1、题目

图1

2、题解

动态规划+贪心

图2
图3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution:
def jump(self, nums: List[int]) -> int:
size = len(nums)
dp = [float("inf") for _ in range(size)]
dp[0] = 0

j = 0
for i in range(1, size):
while j + nums[j] < i:
j += 1
dp[i] = dp[j] + 1

return dp[size - 1]

贪心

图4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution:
def jump(self, nums: List[int]) -> int:
end,max_step = 0, 0
step = 0

for i in range(len(nums)-1):
max_step = max(max_step, nums[i]+i)

if i == end:
end = max_step
step += 1

return step


跳跃游戏II
http://example.com/2024/04/29/跳跃游戏II/
作者
Z Z
发布于
2024年4月29日
许可协议