Advertisement
satishfrontenddev4

Untitled

Jan 6th, 2024
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. Given an array of integers and a number k, find the maximum sum of a subarray of size k.
  3.  
  4. Input format
  5. First line of input contains two integers N and K, where N is the size of the array and K is the subarray size.
  6.  
  7. Second line of input contains N integers denoting the array elements.
  8.  
  9. Output format
  10. Print the maximum sum of a subarray of size k.
  11.  
  12. Sample Input 1
  13. 4 2
  14.  
  15. 100 200 300 400
  16.  
  17. Sample Output 1
  18. 700
  19.  
  20. Explanation
  21. We get maximum sum by adding subarray {300,400}
  22.  
  23. of size 2.
  24.  
  25. Constraints
  26. 1<=K<=N<=100000
  27.  
  28. 0<=abs(arr[i])<=10000
  29. */
  30.  
  31. /**
  32.  * @param {number} n
  33.  * @param {number[]} arr
  34.  * @param {number} K
  35.  * @return {number}
  36.  */
  37. // // please check general approach of this video: https://www.youtube.com/watch?v=Lav6St0W_pQ
  38. function maximumSubarraySumSizeK(n,arr,k) {
  39.     let i,j,currSubarrayLength,currSubarraySum,maxSubarraySum;
  40.     i=0;
  41.     j=0;
  42.     currSubarrayLength=0;
  43.     currSubarraySum=0;
  44.     maxSubarraySum=-1e9;
  45.     while(j<n){
  46.         if(currSubarrayLength<k){
  47.             currSubarraySum+=arr[j];
  48.             // console.log(`i=${i} , j=${j} , currSubarraySum=${currSubarraySum}`);
  49.             currSubarrayLength++;
  50.             if(currSubarrayLength==k)
  51.                 maxSubarraySum=Math.max(maxSubarraySum,currSubarraySum);
  52.             j++;
  53.         }
  54.         else{
  55.             // currSubarrayLength==k
  56.             currSubarraySum=currSubarraySum+arr[j]-arr[i];
  57.             maxSubarraySum=Math.max(maxSubarraySum,currSubarraySum);
  58.             i++;
  59.             // console.log(`i=${i} , j=${j} , currSubarraySum=${currSubarraySum}`);
  60.             j++;
  61.         }
  62.        
  63.     }
  64.     return maxSubarraySum;
  65.  
  66. }
  67.  
  68. function main() {
  69.     const [N,K] = readLine().split(" ").map(Number);
  70.     const A = readIntArr();
  71.     console.log(maximumSubarraySumSizeK( N,A,K));
  72. }
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement