leetcode每日一题-股票买卖第二弹(rust)

Connor 火币交易所 2023-04-13 240 0

题目链接:

力扣

题目描述:在进行多次股票买卖交易的情况下,计算出所能获取的最大利润股票停板买卖

解题思路:题目对交易次数不限制,所以只要今天的股价大于昨天,那么就可以进行交易股票停板买卖。我们先不考虑涨跌,每天都进行交易,在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

leetcode每日一题-股票买卖第二弹(rust)

运行结果

评论