Find the subtle initialization bug in a fixed-size sliding window that computes the maximum subarray 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;
}
The sliding-window logic looks right, but the function returns a wrong result for some inputs. What is the bug?