我想了个方法,不知道对不对:
int MaxDistance(int a[], int n)
{
int i, j;
int ans = 0;
vector vi;
vi.push_back(0);
int pre = a[0];
for(i = 1; i < n; i++)
if(a[i] < pre) {
pre = a[i];
vi.push_back(i);
}
j = n-1;
for(i = vi.size()-1; i >= 0; i--) {
int t = vi[i];
while(j > t) {
if(a[j] > a[t]) {
ans = max(ans, j-t);
break;
}
j--;
}
}
return ans;
}