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
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;
}
Python sum(nums[:k]) clean. Java needs loop. Sliding mechanism identical.
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
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;
}
1. Initialize window 2. Slide: add right remove left 3. Track max