Skip to content

Instantly share code, notes, and snippets.

@kylejeske
Last active September 25, 2019 22:27
Show Gist options
  • Save kylejeske/6fc634ef47f626a908551527345a1748 to your computer and use it in GitHub Desktop.
Save kylejeske/6fc634ef47f626a908551527345a1748 to your computer and use it in GitHub Desktop.
Find the max sum of the sub-array (sliding window)
/**
* @param {number[]} nums
* @param {number} k
* @return {number[]}
*/
const maxSlidingWindow = function(nums, k) {
if (k == 0) return Array(0);
const iterateNumbers = (nums, filterSize) => {
const len = nums.length;
const max = [];
for(let iter=0; iter < len; iter++) {
const filtered = nums.slice(iter, (iter + filterSize));
if (filtered.length == filterSize) {
max[iter] = Math.max.apply(null, filtered);
}
}
return max;
}
return iterateNumbers(nums, k);
}

Test Case: #1

[1,3,-1,-3,5,3,6,7]

  Window Size: 2
  Expected Results:  [3,3,-1,5,5,6,7]
  Actual Results:    [3,3,-1,5,5,6,7]
  • o(n) - RT: PASS.
  • Mem. Util: PASS.

Test Case: #2

[1,3,-1,-3,5,3,6,7,-3,8,5,7,3,4,6,-1,-6,-8,3,7,5,4,3,2,2,5,6,-8,-7]

Window Size: 3
Expected Results:  [3,3,5,5,6,7,7,8,8,8,7,7,6,6,6,-1,3,7,7,7,5,4,3,5,6,6,6]
Actual Results:    [3,3,5,5,6,7,7,8,8,8,7,7,6,6,6,-1,3,7,7,7,5,4,3,5,6,6,6]
  • o(n) - RT: PASS.
  • Mem. Util: PASS.

Test Case #3

[1,3,-1,-3,5,3,6,7,-3,8,5,7,3,4,6,-1,-6,-8,3,7,5,4,3,2,2,5,6,-8,-7]

Window Size: 7
Expected Results:  [6,7,7,8,8,8,8,8,8,8,7,7,6,7,7,7,7,7,7,7,6,6,6]
Actual Results:    [6,7,7,8,8,8,8,8,8,8,7,7,6,7,7,7,7,7,7,7,6,6,6]
  • o(n) - RT: PASS.
  • Mem. Util: PASS.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment