对于一个无序数组A,请设计一个算法,求出需要排序的最短子数组的长度。
给定一个整数数组A及它的大小n,请返回最短子数组的长度。
测试样例:
[1,5,3,4,2,6,7],7
返回:4
class ShortSubsequence {
public:
int findShortest(vector<int> A, int n) {
int max=A[0],min=A[n-1],maxNum=-1,minNum=-1;
for(int i=1;i<n;++i){
if(max>A[i])
maxNum=i;
else
max=A[i];
}
for(int i=n-1;i>=0;--i){
if(min<A[i])
minNum=i;
else
min=A[i];
}
if(minNum==-1)
return 0;
else
return maxNum-minNum+1;
}
};