求0到n的数,求ai - aj的最大值,维护aj之前的最大值即可,用max - aj.
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
const int MAX = 100000+5;
int a[MAX];
int main(int argc, char *argv[])
{
int t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(int i = 0; i < n; i++)
{
scanf("%d",a+i);
}
int m = a[0],ans = a[0] - a[1];
for(int i = 1; i < n; i++)
{
ans = max(m - a[i],ans);
m = max(m,a[i]);
}
printf("%d\n",ans);
}
//system("PAUSE");
return EXIT_SUCCESS;
}
本文介绍了一种算法,用于计算从0到n范围内任意两个数ai和aj之间的最大差值。通过迭代并维护当前已遍历元素中的最大值,能够有效地找到最大的ai-aj值。
357

被折叠的 条评论
为什么被折叠?



