← Sliding Window

Max Sum Subarray K

Easy
Python
def max_sum_subarray(nums,k):
    window=sum(nums[:k]); best=window
    for i in range(k,len(nums)):
        window+=nums[i]-nums[i-k]
        best=max(best,window)
    return best
Java
public int maxSumSubarray(int[] nums,int k){
    int window=0;
    for(int i=0;i<k;i++) window+=nums[i];
    int best=window;
    for(int i=k;i<nums.length;i++){
        window+=nums[i]-nums[i-k];
        best=Math.max(best,window);
    } return best;
}

Key Insight

Python sum(nums[:k]) clean. Java needs loop. Sliding mechanism identical.

Python → Java Differences

  • sum(nums[:k]) initializes window
  • Java needs explicit loop
  • Sliding window identical
Python
def max_sum_subarray(nums,k):
    window=sum(nums[:k]); best=window
    for i in range(k,len(nums)):
        window+=nums[i]-nums[i-k]
        best=max(best,window)
    return best
Java
public int maxSumSubarray(int[] nums,int k){
    int window=0;
    for(int i=0;i<k;i++) window+=nums[i];
    int best=window;
    for(int i=k;i<nums.length;i++){
        window+=nums[i]-nums[i-k];
        best=Math.max(best,window);
    } return best;
}

Algorithm Steps

1. Initialize window
2. Slide: add right remove left
3. Track max