第一种方法:

  用两重循环对每对点都试一下,然后取最大值即可,时间复杂度为O(n2)

#include <iostream>
#include <algorithm>
using namespace std;

int maxIndexDiff(int a[],int n){
    int maxDiff = -1;
    for(int i = 0 ; i <  n; ++ i){
        for(int j =n-1; j > i ; --j){
            if(a[j]>a[i]) maxDiff = max(maxDiff,j-i);
        }
    }
    return maxDiff;
}

int main(){
    int a[]={9,2,3,4,5,6,7,8,18,0};
    int n = sizeof(a)/sizeof(a[0]);
    int maxDiff = maxIndexDiff(a,n);
    cout<<maxIndexDiff(a,n)<<endl;
}
时间复杂度O(N^2)

相关文章: