最短无序连续子数组
使用一個(gè)輔助數(shù)組,排序后從頭尾分別比較,遇到不匹配的位置即為起始點(diǎn),注意完全升序的情況
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;
? ? }
};
總結(jié)