leetcode每日一题-股票买卖第二弹(rust)
题目链接:
力扣
题目描述:在进行多次股票买卖交易的情况下,计算出所能获取的最大利润股票停板买卖。
解题思路:题目对交易次数不限制,所以只要今天的股价大于昨天,那么就可以进行交易股票停板买卖。我们先不考虑涨跌,每天都进行交易,在n天的交易情况如下: profit = (p2 - p1) + (p3 - p2) + (p4 - p3) + ... + (pn - pn-1)。相邻两天的收益情况,分情况讨论:
>0: 存在正收益股票停板买卖。
=0: 不存在收益股票停板买卖。
<0: 存在负收益股票停板买卖。
当收益为正时,则可以进行交易股票停板买卖。
注意: 在实际股票交易过程中,存在印花税和手续费股票停板买卖。所以,在正常交易中,若所获取的最大利润相同,我们应该使用更少的交易次数。
impl Solution {
pub fn max_profit(prices: Vec) -> i32 {
let mut total_profit = 0;
for i in 1..prices.len() {
let profit = prices[i] - prices[i - 1];
if profit > 0 {
total_profit += profit;
total_profit
运行结果
版权声明:如无特殊标注,文章均为本站原创,转载时请以链接形式注明文章出处。
评论