fork download
  1. import java.util.*;
  2.  
  3. public class Main {
  4. public static int longestSubarray(int[] nums, int limit) {
  5. int left = 0, maxLength = 0;
  6. int minVal, maxVal;
  7.  
  8. for (int right = 0; right < nums.length; right++) {
  9. minVal = nums[left];
  10. maxVal = nums[left];
  11.  
  12. for (int i = left; i <= right; i++) {
  13. minVal = Math.min(minVal, nums[i]);
  14. maxVal = Math.max(maxVal, nums[i]);
  15. }
  16.  
  17. if (maxVal - minVal > limit) {
  18. left++;
  19. } else {
  20. maxLength = Math.max(maxLength, right - left + 1);
  21. }
  22. }
  23.  
  24. return maxLength;
  25. }
  26.  
  27. public static void main(String[] args) {
  28. int[] nums1 = {8, 2, 4, 7};
  29. int limit1 = 4;
  30. System.out.println("Output: " + longestSubarray(nums1, limit1));
  31.  
  32. int[] nums2 = {10, 1, 2, 4, 7, 2};
  33. int limit2 = 5;
  34. System.out.println("Output: " + longestSubarray(nums2, limit2));
  35. }
  36. }
  37.  
Success #stdin #stdout 0.12s 55624KB
stdin
Standard input is empty
stdout
Output: 2
Output: 4