1696. Jump Game VI
https://leetcode.com/problems/jump-game-vi/
You are given a 0-indexed integer array nums
and an integer k
.
You are initially standing at index 0
. In one move, you can jump at most k
steps forward without going outside the boundaries of the array. That is, you can jump from index i
to any index in the range [i + 1, min(n - 1, i + k)]
inclusive.
You want to reach the last index of the array (index n - 1
). Your score is the sum of all nums[j]
for each index j
you visited in the array.
Return the maximum score you can get.
Example 1:
Example 2:
Example 3:
Constraints:
1 <= nums.length, k <= 105
-104 <= nums[i] <= 104
给定数组nums,从第一个元素开始,每次能往前最远跳k步且收益为所跳到格子的值,问跳到最后一个位置时最大的收益是多少。虽然有一点不同,但思路基本和1425. Constrained Subsequence Sum一致:subseq + argmax => dp[i] == 此时最大序列和:argmax(dp[i - k], dp[i -k +1], ... dp[i - 1]) + nums[i]。找max(dp[i - k: i - 1])的过程相当于维持一个大小为k的在dp数组上的滑动窗口,且每次找窗口内最大元素=>单调栈。和1425区别在于必须从起点跳到终点,因此结果不再是max(dp)而是dp[-1],且dp[i - k: i - 1]必须要选一个,而不能因为是负数而不选。
Last updated
Was this helpful?