你获得了一支股票的历史 n 天的走势图,你想知道如果开启了上帝视角,在这段时间里最多能获利多少。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。如果你不能获取任何利润,输出 0 第一行包含一个正整数 n,表示股票价格统计天数。 第二行包含 n 个正整数,其中第 i 个数 ai 表示该股票第 i 天的价格在不使用STL容器的情况下用C++实现
时间: 2024-03-03 14:53:09 浏览: 119
一个用C++开发的股票分析系统的原代码程序
4星 · 用户满意度95%
好的,这是一个经典的股票买卖问题,可以采用贪心算法来解决。具体来说,我们可以从前往后遍历股票价格,维护一个最小价格 minprice,表示到当前位置为止股票价格的最小值,然后用当前价格减去最小价格,得到当前收益,更新最大收益 maxprofit。最后返回 maxprofit 即可。
以下是C++的实现代码:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int minprice = INT_MAX; // 最小价格初始化为正无穷
int maxprofit = 0; // 最大收益初始化为0
for (int i = 0; i < n; i++) {
int price;
cin >> price;
minprice = min(minprice, price);
maxprofit = max(maxprofit, price - minprice);
}
cout << maxprofit << endl;
return 0;
}
```
注意,这里没有使用STL容器,而是直接用了C++的标准库函数 min 和 max,它们分别返回两个数的最小值和最大值。
阅读全文