uva 11078

//设定j之前的最大项的初始值为0,j从2开始,i从1开始
//判断i是否比最大项大,是则更新最大项的值,判断i与j的差值是否最大,是则更新最大差值,然后i,j分别向后推进 
//突然发现可以用 -1<<31表示负无穷 
#include<iostream>
#define INF 1<<31
using namespace std;

const int maxn=100000;
int t,n;
int maxi,maxd;
int scri,scrj;

int main(){
    
    cin>>t;
    while(t--){
        int i;
        cin>>n;
        cin>>scri;
        maxi=maxd=-INF;
        for(int j=2;j<=n;j++)
        {
            if(scri>maxi)
                maxi=scri;
            cin>>scrj;
            if(maxi-scrj>maxd)
                maxd=maxi-scrj;
            scri=scrj;
        }
        cout<<maxd<<endl;
    }
    return 0; 
} 
原文地址:https://www.cnblogs.com/neverchanje/p/3552460.html