LeetCode热题100道-Day01
- 给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的 最短 子数组,并输出它的长度。
int findUnsortedSubarray(vector<int>& nums) {
if (nums.size() <= 1) return 0;
int len=nums.size(),low = 0, high = len - 1, maxNum = nums[0], minNum = nums[len - 1];
for (int i = 1; i < len; i++) {
maxNum = max(maxNum, nums[i]);
minNum = min(minNum, nums[len - 1 - i]);
if (nums[i] < maxNum) low = i;
if (nums[len - 1 - i] > minNum) high = len - 1 - i;
}
return low > high ? low - high + 1 : 0;
}