Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Given an array of integers and a number k, find the maximum sum of a subarray of size k.
- Input format
- First line of input contains two integers N and K, where N is the size of the array and K is the subarray size.
- Second line of input contains N integers denoting the array elements.
- Output format
- Print the maximum sum of a subarray of size k.
- Sample Input 1
- 4 2
- 100 200 300 400
- Sample Output 1
- 700
- Explanation
- We get maximum sum by adding subarray {300,400}
- of size 2.
- Constraints
- 1<=K<=N<=100000
- 0<=abs(arr[i])<=10000
- */
- /**
- * @param {number} n
- * @param {number[]} arr
- * @param {number} K
- * @return {number}
- */
- // // please check general approach of this video: https://www.youtube.com/watch?v=Lav6St0W_pQ
- function maximumSubarraySumSizeK(n,arr,k) {
- let i,j,currSubarrayLength,currSubarraySum,maxSubarraySum;
- i=0;
- j=0;
- currSubarrayLength=0;
- currSubarraySum=0;
- maxSubarraySum=-1e9;
- while(j<n){
- if(currSubarrayLength<k){
- currSubarraySum+=arr[j];
- // console.log(`i=${i} , j=${j} , currSubarraySum=${currSubarraySum}`);
- currSubarrayLength++;
- if(currSubarrayLength==k)
- maxSubarraySum=Math.max(maxSubarraySum,currSubarraySum);
- j++;
- }
- else{
- // currSubarrayLength==k
- currSubarraySum=currSubarraySum+arr[j]-arr[i];
- maxSubarraySum=Math.max(maxSubarraySum,currSubarraySum);
- i++;
- // console.log(`i=${i} , j=${j} , currSubarraySum=${currSubarraySum}`);
- j++;
- }
- }
- return maxSubarraySum;
- }
- function main() {
- const [N,K] = readLine().split(" ").map(Number);
- const A = readIntArr();
- console.log(maximumSubarraySumSizeK( N,A,K));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement