题目链接:http://7xjob4.com1.z0.glb.clouddn.com/b4ea9368799f989c139c1843a4b5bcdf
中文题意:给一个长度为n的整数序列A0,A1,…….An-1,找出两个整数Ai和Aj(i< j),使得Ai-Aj尽量大。
【输入格式】
输入第一行为数据组数T(T<=20)。每组数据的第一行为整数的个数n(2<=n<=100000);
以下n行,每行为一个绝对值不超过150000的整数。
【输出格式】
对于每组数据,输出Ai-Aj的最大值。
下面是AC代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a[100005];
int main()
{
int t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
int num;
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int ans=a[0]-a[1];
int maxn=a[0];//maxn动态维护数组中的最大值
for(int i=1;i<n;i++)
{
ans=max(ans,maxn-a[i]);
maxn=max(maxn,a[i]);//maxn 要比ans更新的晚,至于为什么,就是为了i<j
}
printf("%d\n",ans);
}
return 0;
}