使用一个辅助数组,排序后从头尾分别比较,遇到不匹配的位置即为起始点,注意完全升序的情况
class Solution {
public:
int findUnsortedSubarray(vector<int>& nums) {
if(nums.size()==1){
return 0;
}
vector<int> hp=nums;
int start=0,end=0;
sort(hp.begin(),hp.end());
int i,j;
for(i=0;i<hp.size();i++){
if(hp[i]!=nums[i]){
start=i;
break;
}
}
for(j=hp.size()-1;j>=0;j--){
if(hp[j]!=nums[j]){
end=j+1;
break;
}
}
return end-start;
}
};