您的位置:首页 > 其它

最短排序

2016-05-06 13:57 288 查看
问题描述:

‘ 对于一个无序数组A,请设计一个算法,求出需要排序的最短子数组的长度。

给定一个整数数组A及它的大小n,请返回最短子数组的长度。

测试样例:

[1,5,3,4,2,6,7],7

返回:4

最优AC代码:

class ShortSubsequence {
public:
int findShortest(vector<int> A, int n) {
// write code here

if(n==0 || n==1)
return 0;
int max=A[0],maxp=-1,min=A[n-1],minp=n;
for(int i=1;i<n;i++){
if(max>A[i])
maxp=i;
else if(max<A[i])
max=A[i];
}
for(int i=n-2;i>=0;i--)
if(min<A[i])
minp=i;
else if(min>A[i])
min=A[i];
if(minp==n || maxp==-1)
return 0;
return maxp-minp+1;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: