Untitled
unknown
plain_text
10 months ago
833 B
2
Indexable
public class MaxLengthSubarray {
public int maxLengthSubarray(int[] nums, int k) {
int i = 0; // Start of the window
int j = 0; // End of the window
int sum = 0;
int maxLength = 0;
while (j < nums.length) {
sum += nums[j]; // Add the current element to the window
// Shrink the window until the sum is <= k
while (sum > k) {
sum -= nums[i];
i++;
}
// single shrink only for maxlen
if (sum > k) {
sum -= nums[i];
i++;
}
if(sum <= k)
maxLength = Math.max(maxLength, j - i + 1);
// Move the end pointer
j++;
}
return maxLength;
}
}
Editor is loading...
Leave a Comment