分成三段,左段和右段是标准的升序数组,中段数组虽是无序的,但满足最小值大于左段的最大值,最大值小于右段的最小值
class Solution {
public int findUnsortedSubarray(int[] nums) {
int len = nums.length, min = nums[len - 1], max = nums[0], left = 0, right = -1;
for(int i = 0; i < len; i++){
if(nums[i] < max) right = i;
else max = nums[i];
if(nums[len - i -1] > min) left = len - i - 1;
else min = nums[len - i - 1];
}
return right - left + 1;
}
}