最短排序

来源:互联网 发布:地图画路线软件 编辑:程序博客网 时间:2024/05/21 05:59

问题描述:

‘       对于一个无序数组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;    }};


0 0
原创粉丝点击