import java.util.*;
public class Main {
public static int longestSubarray(int[] nums, int limit) {
int left = 0, maxLength = 0;
int minVal, maxVal;
for (int right = 0; right < nums.length; right++) {
minVal = nums[left];
maxVal = nums[left];
for (int i = left; i <= right; i++) {
minVal
= Math.
min(minVal, nums
[i
]); maxVal
= Math.
max(maxVal, nums
[i
]); }
if (maxVal - minVal > limit) {
left++;
} else {
maxLength
= Math.
max(maxLength, right
- left
+ 1); }
}
return maxLength;
}
public static void main
(String[] args
) { int[] nums1 = {8, 2, 4, 7};
int limit1 = 4;
System.
out.
println("Output: " + longestSubarray
(nums1, limit1
));
int[] nums2 = {10, 1, 2, 4, 7, 2};
int limit2 = 5;
System.
out.
println("Output: " + longestSubarray
(nums2, limit2
)); }
}
aW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyBpbnQgbG9uZ2VzdFN1YmFycmF5KGludFtdIG51bXMsIGludCBsaW1pdCkgewogICAgICAgIGludCBsZWZ0ID0gMCwgbWF4TGVuZ3RoID0gMDsKICAgICAgICBpbnQgbWluVmFsLCBtYXhWYWw7CgogICAgICAgIGZvciAoaW50IHJpZ2h0ID0gMDsgcmlnaHQgPCBudW1zLmxlbmd0aDsgcmlnaHQrKykgewogICAgICAgICAgICBtaW5WYWwgPSBudW1zW2xlZnRdOwogICAgICAgICAgICBtYXhWYWwgPSBudW1zW2xlZnRdOwoKICAgICAgICAgICAgZm9yIChpbnQgaSA9IGxlZnQ7IGkgPD0gcmlnaHQ7IGkrKykgewogICAgICAgICAgICAgICAgbWluVmFsID0gTWF0aC5taW4obWluVmFsLCBudW1zW2ldKTsKICAgICAgICAgICAgICAgIG1heFZhbCA9IE1hdGgubWF4KG1heFZhbCwgbnVtc1tpXSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChtYXhWYWwgLSBtaW5WYWwgPiBsaW1pdCkgewogICAgICAgICAgICAgICAgbGVmdCsrOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbWF4TGVuZ3RoID0gTWF0aC5tYXgobWF4TGVuZ3RoLCByaWdodCAtIGxlZnQgKyAxKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIG1heExlbmd0aDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgaW50W10gbnVtczEgPSB7OCwgMiwgNCwgN307CiAgICAgICAgaW50IGxpbWl0MSA9IDQ7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJPdXRwdXQ6ICIgKyBsb25nZXN0U3ViYXJyYXkobnVtczEsIGxpbWl0MSkpOwoKICAgICAgICBpbnRbXSBudW1zMiA9IHsxMCwgMSwgMiwgNCwgNywgMn07CiAgICAgICAgaW50IGxpbWl0MiA9IDU7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJPdXRwdXQ6ICIgKyBsb25nZXN0U3ViYXJyYXkobnVtczIsIGxpbWl0MikpOwogICAgfQp9Cg==