题目描述
给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格。
如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。
注意你不能在买入股票前卖出股票。
输入格式
第一行包含整数 N,表示数组长度。
第二行包含 N 个不大于 的正整数,表示完整的数组。
输出格式
输出一个整数,表示最大利润。
样例
样例输入 1
复制6
7 1 5 3 6 4
样例输出 1
复制5
样例解释 1
样例1:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为你不能在买入股票前卖出股票。
样例输入 2
复制5
7 6 4 3 1
样例输出 2
复制0
样例解释 2
样例2:在这种情况下, 不进行任何交易, 所以最大利润为 0
日常发作业题解。
也是简单爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆表的题
写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
cpp
#include <bits/stdc++.h>
using namespace std;
int a[1000005],n,m,x=10000000;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
x=min(x,a[i]);
m=max(m,a[i]-x);
}
cout<<m;
}