乱序数组找出前面的都比他小后面的都比他大的数

 1 int f(int*a,int*b,int n)
 2 {
 3     if(!a||!b||n<3) return -1;
 4     int*temp=new int[n]();
 5     int max=a[0],count=0;
 6     for (int i=1;i<n-1;i++)
 7         if(a[i]>max) 
 8         {
 9             temp[i]++;
10             max=a[i];
11         }
12     int min=a[n-1];
13     for (int i=n-2;i>0;i--)
14         if(a[i]<min) 
15         {
16             temp[i]++;
17             min=a[i];
18         }
19     for (int i=1;i<n-1;i++)
20         if(temp[i]==2) b[count++]=a[i];
21     delete[]temp;
22     return count;
23 }

 

posted on 2014-09-05 16:47  eaststar  阅读(734)  评论(0编辑  收藏  举报

导航