Python 中买卖股票的最佳时机 II


假设我们有一个数组 A,其中 A[i] 表示某一天的股票价格。我们必须找到最大利润。我们可以进行任意多次交易。(交易意味着买卖股票)。但我们必须记住,我们不能同时进行多笔交易。因此,我们必须在购买新股票之前出售股票。

假设数组类似于 A = [7, 1, 5, 3, 6, 4],则结果将为 7。我们可以看到,如果我们在第 2 天(索引 1)购买,则购买价格为 1。然后,如果我们在第 3 天出售,则利润将为 5 – 1 = 4。然后在第 4 天购买,并在第 5 天出售,因此利润将为 6 – 3 = 3

要解决此问题,请按照以下步骤操作 -

  • 令 answer = 0
  • 对于 i 从 0 到 n – 1(n 是 A 中元素的数量) -
    • 如果 A[i] – A[i – 1] > 0,则
      • answer := answer + A[i] – A[i – 1]
  • 返回 answer

示例

让我们看看实现以更好地理解

 实时演示

class Solution(object):
   def maxProfit(self, prices):
      """
      :type prices: List[int]
      :rtype: int
      """
      ans = 0
      for i in range(1,len(prices)):
         if prices[i] - prices[i-1] >0:
            ans+=(prices[i] - prices[i-1])
      return ans
ob1 = Solution()
print(ob1.maxProfit([7,2,5,8,6,3,1,4,5,4,7]))

输入

print(ob1.maxProfit([7,2,5,8,6,3,1,4,5,4,7]))

输出

13

更新于: 2020-04-28

931 次查看

开启你的 职业生涯

通过完成课程获得认证

开始
广告