第二章 ALDS1_1_D:Maximum Profit

来源:互联网 发布:天翼进销存软件汽配 编辑:程序博客网 时间:2024/06/05 10:15

问题链接

ALDS1_1_D:Maximum Profit

问题内容

输入每天的价格Ri,求RjRi(其中j>i)的最大值

思路

计算出对于每个Ri 减去从R0Ri1之间的最小值,就可以得到当前的最大值,通过这些最大值的比较得出答案,其中计算从R0Ri1之间的最小值可以一直记录,这样简便了算法。

代码

#include<iostream>#include<cstdio>#include<cmath>using namespace std;int main() {    int n, t;    int maxx, minn;    scanf("%d", &n);    scanf("%d", &t);    maxx = -1000000001; minn = t;    for (int i = 1; i < n; i++) {        scanf("%d", &t);        // 先更新当前的最大值        maxx = maxx < t - minn ? t - minn : maxx;        // 再更新当前最小值        minn = minn > t ? t : minn;    }    printf("%d\n", maxx);}