18770 差值最大
时间限制:1000MS 代码长度限制:10KB
提交次数:0 通过次数:0
题型: 编程题 语言: G++;GCC
Description
一个长度为N的整数序列,找出两个数x和y使x-y的值最大。 要求在序列中x必须在y的右侧。
输入格式
第一行是一个正整数N,表示了序列的长度(0<=N<=200000)。 第二行包含N个绝对值不大于10000的整数ai。
输出格式
一个整数,为最大的差值。数据确保结果在类型int范围内。
输入样例
7 4 -4 3 -1 2 -4 3
输出样例
7
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i;
int sum=0,minnumber=0;
scanf("%d\n",&n);
int a[n];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
minnumber=a[0]; //最小值初始值为数组第一个元素
sum=a[1]-a[0]; //差值初始值为第二个元素-第一个元素
for(i=0;i<n;i++)
{
if(a[i]-minnumber>sum)
sum=a[i]-minnumber; //数组第i个元素与当前最小值比较
if(a[i]<minnumber)
minnumber=a[i]; //最小值随i值增大不断变化
}
printf("%d",sum);
return 0;
}