Code Quiz

Fixed-Size Sliding Window Max Sum

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?