Sliding Window Max Subarray Bug
Spot the subtle initialization bug in a fixed-size sliding window sum.
Codejavascript
function maxSubarraySum(arr, k) {
let maxSum = 0;
let windowSum = 0;
for (let i = 0; i < arr.length; i++) {
windowSum += arr[i];
if (i >= k) {
windowSum -= arr[i - k];
}
if (i >= k - 1) {
maxSum = Math.max(maxSum, windowSum);
}
}
return maxSum;
}
// maxSubarraySum([-3, -1, -4, -2], 2) => expected -4, returns 0What is the bug that makes this return the wrong answer for arrays of all negative numbers?