#include <iostream>
using namespace std;
void func(int *a, int len, int &b1, int &b2)
{
int a1, a2;
b1 = a1 = 0;
b2 = a2 = len-1;
int l_min, r_max;
l_min = a[a1];
r_max = a[a2];
while(a1<a2)
{
if(a[a1]>a[a2])
{
b1 = a1 += 1;
b2 = a1 -= 1;
continue;
}
if(a[a1]>a[a1+1])
{
l_min = a[a1+1];
b1 = a1 += 2;
}else{
a1++;
}
if(a[a2]<a[a2-1])
{
r_max = a[a2-1];
b2 = a2 -= 2;
}else{
a2--;
}
}
}
void main()
{
int a[] = {3,2,5,4,10,20,15};
int len = sizeof(a)/sizeof(a[0]);
int b1, b2;
func(a, len, b1, b2);
while(b1<=b2)
{
cout<<a[b1++]<<" ";
}
cout<<endl;
}
百度三面:找出数组中所有这样的数,大于等于左边的所有数,小于等于右边的所有的数
最新推荐文章于 2022-06-10 17:16:11 发布