Constrained Subsequence Sum LeetCode solution in JavaScript

1
/**
2
* @param {number[]} nums
3
* @param {number} k
4
* @return {number}
5
*/
6
var constrainedSubsetSum = function (nums, k) {
7
const queue = [[0, nums[0]]];
8
let max = nums[0];
9
for (let i = 1; i < nums.length; i++) {
10
const cur = queue.length ? nums[i] + Math.max(0, queue[0][1]) : nums[i];
11
max = Math.max(max, cur);
12
while (queue.length && queue[queue.length - 1][1] < cur) queue.pop();
13
queue.push([i, cur]);
14
while (queue.length && queue[0][0] <= i - k) queue.shift();
15
}
16
return max;
17
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0