Summary
This is the maxSumWithK method. Using a given array an of length n, this method determines the maximum possible sum of a subarray of length k.
Solution
//User function Template for Java class Solution {
public long maxSumWithK(long a[], long n, long k) { long sum = 0; long maxSum = 0; long prevElemSum = 0;
for (int i = 0; i < k; i++) { sum = sum + a[i]; } maxSum = sum; int m = 0;
for(int i = (int)k; i < n; i++){ sum = sum + a[i]; maxSum = Math.max(sum, maxSum); prevElemSum = prevElemSum + a[m++];
if(prevElemSum < 0){ sum = sum - prevElemSum; prevElemSum = 0; maxSum = Math.max(sum, maxSum); } }
return maxSum; } } |
Explanation
The Solution class contains a declaration for the maxSumWithK method.
An array of large numbers is called a[].
n: The array's length a. k: The subarray's length for which the maximum sum must be computed.
sum: A variable used to record the current subarray's sum.
maxSum: A variable used to hold the highest sum discovered to date.
Using a for loop, the code determines the initial sum of the array's first k elements.
Answered by:> >imajaythacmoi
Credit:> >GeekforGeeks
Suggested blogs:
>Calculating the Nth Fibonacci Number
>How to clone an undirected graph using Java
>Check if strings are rotations of each other or not with Java
>How to Detect cycle in an undirected graph with Java?
>How to check whether all leaves are at the same level using Java
>Compute amount of water that can trapped between the blocks using Java