本文共 1019 字,大约阅读时间需要 3 分钟。
为了解决这个问题,我们需要找到一种方法来最大化通过多次买卖股票获得的利润,同时考虑交易手续费的影响。我们可以使用贪心算法来优化交易策略,确保每次交易都能带来最大的利润。
贪心算法的核心思想是每次尽可能地卖出股票,以获得当前最高的利润。具体步骤如下:
这种方法确保了我们总是在最佳时机卖出股票,从而最大化利润。
public class Solution { public int maxProfit(vector prices, int fee) { int n = prices.size(); if (n <= 1) { return 0; } int buy = prices[0] + fee; int profit = 0; for (int i = 1; i < n; ++i) { if (prices[i] + fee < buy) { buy = prices[i] + fee; } else if (prices[i] > buy) { profit += prices[i] - buy; buy = prices[i]; } } return profit; }} buy 初始化为第一个股票价格加上手续费,表示当前手上的股票的最低买入价格。buy,或者是否可以卖出股票获得利润。profit中。这种方法的时间复杂度为O(n),空间复杂度为O(1),非常高效,适用于大规模数据。
转载地址:http://poox.baihongyu.com/