题目链接:https://leetcode-cn.com/problems/longest-continuous-subarray-with-absolute-diff-less-than-or-equal-to-limit/
执行用时:53 ms, 在所有 Java 提交中击败了47.98% 的用户
内存消耗:47 MB, 在所有 Java 提交中击败了92.63% 的用户
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| class Solution { public int longestSubarray(int[] nums, int limit) { int res = 0; int maxV = nums[0], minV = nums[0]; int left = 0,right = 0; int n = nums.length; while (left <= right && right < n){ if (nums[right] > maxV) { maxV = nums[right]; } if (nums[right] < minV) { minV = nums[right]; } if (maxV - minV <= limit) { res = Math.max(res, right-left+1); right++; } else { left++; minV = 1000000001; maxV = 0; for (int i = left; i <= right ; i++) { if (nums[i] > maxV) { maxV = nums[i]; } if (nums[i] < minV) { minV = nums[i]; } } res = Math.max(res, right-left+1); right++; } } return res; } }
|