class Solution {
public:
int findUnsortedSubarray(vector<int>& nums) {
if (is_sorted(nums.begin(), nums.end())) {
return 0;
}
vector<int> numsSorted(nums);
sort(numsSorted.begin(), numsSorted.end());
int left = 0, right = nums.size() - 1;
while (left < nums.size() && nums[left] == numsSorted[left]) {
left++;
}
while (right >= 0 && nums[right] == numsSorted[right]) {
right--;
}
return (right - left + 1);
}
};
优化到O(N)