Jump Game VI
MediumArrayDynamic ProgrammingQueueHeap (Priority Queue)Monotonic Queue
Solution
export function maxResult(nums: number[], k: number): number {
const n = nums.length;
const queue = [[nums[0], 0]];
for (let i = 1; i < n; i++) {
while (queue.length && queue[0][1] + k < i) {
queue.shift();
}
const cost = nums[i] + queue[0][0];
while (queue.length && queue[queue.length - 1][0] <= cost) {
queue.pop();
}
queue.push([cost, i]);
}
return queue[queue.length - 1][0];
}