P1104: 最大收益(maximum profit)
题目描述
外汇交易可以通过兑换不同国家的货币以赚取汇率差。比如1美元兑换100日元时购入1000美元,然后等汇率变动到1美元兑换108日元时再卖出,这样就可以赚取(108-100)×1000=8000日元。
现在请将某货币在时刻的价格R
t(t=0,1,2,…,n-1)作为输入数据,计算出价格差R
j-R
i(其中j>i)的最大值。(当然,如果无论如何都会亏损的话,不交易也可以。)
输入
第1行输人整数n。接下来n行依次给整数R t(t=0,1,2…… n-1 )赋值。 输出
在单独一行中输出最大值
提示
2 ≤ n ≤ 200000
1
≤ R t ≤ 109
如果答案错误,请思考:
是否考虑 R
t 单调递减的情况;
最大值的初始化是否足够小;
是否使用了复杂度为O(n
2)的算法,请考虑一下 200 0000
2的时间复杂度。
来源