题目描述
对于一个无序数组A,请设计一个算法,求出需要排序的最短子数组的长度。
给定一个整数数组A及它的大小n,请返回最短子数组的长度。
测试样例:
[1,5,3,4,2,6,7],7
返回:4
class ShortSubsequence {
public:
int findShortest(vector<int> A, int n) {
// write code here
int left = -1, right = -1;
int vmin = INT_MAX;
int vmax = INT_MIN;
for(int i = 0;i<A.size();i++)
{
if(vmax<=A[i])
vmax = A[i];
else
right = i;
}
if(right == -1)
return 0;
for(int i = A.size()-1;i>-1;i--)
{
if(vmin>=A[i])
vmin =A[i];
else
left = i;
}
if(left == -1)
return 0;
return right-left+1;
}
};