本文共 702 字,大约阅读时间需要 2 分钟。
要解决这个问题,我们需要找到一种方法来计算在给定股票价格序列中能够获得的最大利润。允许进行多次交易,但每次交易必须先卖出再买入,不能同时进行多笔交易。
我们可以通过遍历股票价格数组,找出所有相邻两天价格上涨的部分,并将这些上涨的利润累加起来。这样就能得到最大利润。具体步骤如下:
这种方法的时间复杂度是O(n),空间复杂度是O(1),非常高效。
func maxProfit(prices []int) int { var profit int = 0 for i := 1; i < len(prices); i++ { if prices[i] > prices[i-1] { profit += prices[i] - prices[i-1] } } return profit}
var profit int = 0
:初始化利润为0。for i := 1; i < len(prices); i++
:从第二个元素开始遍历数组。if prices[i] > prices[i-1]
:检查当前元素是否大于前一个元素。profit += prices[i] - prices[i-1]
:如果满足条件,将上涨的利润累加到总利润中。return profit
:返回累加的总利润。这个方法能够高效地计算最大利润,适用于所有可能的输入情况。
转载地址:http://slcwz.baihongyu.com/