思路:扫描一遍数组,如果股票价格下降,分两种情况讨论:
1)刚好在波峰下降,这个时候就要实行一次交易(早已记录好波谷值,即最小值);
2)还没达到波谷,更新最小值。
如果序列上升,则要标记好最小值,只等达到波峰就进行交易。
code:
class Solution {
public:
int maxProfit(vector<int> &prices) {
int len = prices.size();
if(len == 0)return 0;
int ret = 0, curMin = prices[0];
bool flag = false;
for(int i = 1;i < len;i++){
if(prices[i] < prices[i-1]){
if(flag){
ret += (prices[i-1] - curMin);
flag = false;
}
curMin = prices[i];
}
else{
flag = true;
}
}
if(flag)
ret += (prices[len-1] - curMin);
return ret;
}
};
本文介绍了一种通过分析股票价格波动性来制定交易策略的方法,旨在实现最大利润。通过扫描股票价格序列,算法能够识别波峰和波谷,并在合适时机进行买入和卖出操作。
259

被折叠的 条评论
为什么被折叠?



