买卖股票最佳时机问题 贪心算法
时间: 2025-03-01 13:05:23 浏览: 46
### 使用贪心算法解决买卖股票最佳时机问题
对于可以进行多次交易的情况,核心思路在于抓住每一个上升的机会。只要今天的价格低于明天的价格,则可以在今天买入并在明天卖出从而赚取差价。
#### 实现方法
通过遍历价格列表,每当发现相邻两天之间的价格上涨时就记录下这个上涨的幅度作为一次成功的交易。最终累加所有的这些涨幅即可得出最大利润[^4]。
#### 示例代码
以下是基于上述逻辑编写的 C++ 版本程序:
```cpp
#include <vector>
using namespace std;
int maxProfit(vector<int>& prices) {
int profit = 0;
for (size_t i = 1; i < prices.size(); ++i){
if(prices[i] > prices[i - 1]){
profit += prices[i] - prices[i - 1];
}
}
return profit;
}
```
此函数接收一个整数向量 `prices` 表示每天的股价,并返回可以获得的最大收益。如果当天的价格高于前一天,则认为应该在这两天间完成一笔交易并增加相应的盈利到总的获利之中。
#### 测试案例分析
考虑输入 `[7,1,5,3,6,4]` 的情况下:
- 第二天至第三天之间存在增长 (`1->5`) 可以获得 4 单位利润;
- 第四天至第五天之间也出现了增值 (`3->6`) 增加了额外的 3 单位收入;
因此按照这种方法计算出来的最大可能利润为 7 单位货币。
阅读全文
相关推荐

















