股票买卖(c++题解)

题目描述

给定一个长度为 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;
}
相关推荐
dialect_10 分钟前
CODEFORCES ROUND 1127 DIV2
开发语言·c++·算法
Nuanyt21 分钟前
LeetCode Hot 100 链表专题(四)· 3 题(Java)
java·算法·leetcode·链表·双指针
灯澜忆梦24 分钟前
LeetCode 1861. 旋转盒子|Go 双指针解法
算法
软件派1 小时前
生产动态数据智能风控:阈值判别、趋势预测、异常识别算法工程落地实战
前端·数据库·算法
悠仁さん8 小时前
【C++】AVL 树
c++
wuminyu9 小时前
JVM规范学习总结:解释器与JIT编译器如何处理JVM字节码
java·linux·c语言·jvm·c++
小徐不徐说9 小时前
序列化与反序列化:把 C++ 对象可靠地保存下来
开发语言·数据库·c++·php
ZhengEnCi9 小时前
模型训练完整流程:从数据准备到模型上线的 10 个关键步骤(全文可跑)
后端·算法
ragnwang9 小时前
Notes: Python pybind11 import C++ module
开发语言·c++·python
充值内卷11 小时前
我给桌面加了个鱼缸:C++ 写后端,WebView2 里养一座 Three.js 小岛
开发语言·javascript·c++