要求求出每个数后面的数的最大值比这个数大多少。
#include<cstdio>
#include<iostream>
using namespace std;
#define MAXN 100005
int a[MAXN], n, ans[MAXN];
int main()
{
scanf("%d", &n);
for(int i = 1; i <= n; i ++)
scanf("%d", &a[i]);
for(int i = n; i > 0; i --)
ans[i] = max(ans[i+1], a[i+1]);
for(int i = 1; i <= n; i ++)
printf("%d ", (ans[i] < a[i]) ? 0 : ans[i] - a[i] + 1);
return 0;
}
本文提供了一个算法来找出数组中每个数后面数的最大值,并计算该最大值与当前数之间的差值。代码示例展示了如何实现这一过程。
140

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



