RT,直接边读入边记录当前阶段的最小值,再不断用当前数字更新差值的最大值便可以通过本题,恐怕连 dp 都算不上,貌似很多人都想复杂了(甚至用上了数据结构)。建议评为橙/红。
我的代码(仅20行,码量之小足以说明本题并不难):
#include<cstdio>
typedef long long ll;
const ll INF = 0x3f3f3f3f3f3f3f3f;
int n;
ll minn = INF, ans = -INF;
int main()
{
scanf("%d", &n);
for(int i = 1; i <= n; i++)
{
ll x;
scanf("%lld", &x);
if(x - minn > ans) ans = x - minn;
if(x < minn) minn = x;
}
printf("%lld\n", ans);
return 0;
}
AC记录