使用Python编写的计算机领域买卖股票最大收益程序?

使用Python编写的计算机领域买卖股票最大收益程序?

假设我们有一家公司的股票价格列表,按时间顺序排列,并且还有一次出售交易的手续费。我们必须找到我们可以从买卖任何数量的股票中获得的最大利润。我们必须先买入再卖出。

因此,如果输入为prices=[2,10,4,8],fee=3,则输出为6,因为我们可以以2购买,以10出售,并收取3的手续费,因此利润为5。然后我们购买4,并出售8并支付3的费用,因此利润为1,总利润为6。

为了解决这个问题,我们将按照以下步骤进行:

  • n:=prices的大小

  • 定义函数recur()。这将取i:=0和flag:=0

  • 如果i与n相同,则

    • 返回0
  • 如果标志为false,则
    • 返回recur(i + 1, 1) – prices[i]和recur(i + 1,0)中的最大值
  • 返回recur(i + 1,1)和recur(i + 1,0) + prices[i] – fee中的最大值

  • 从主方法调用recur()

让我们看一下以下实现以获得更好的理解:

更多Python相关文章,请阅读:Python 教程

示例

class Solution:
   def solve(self, prices, fee):
      n = len(prices)

      def recur(i=0, flag=0):
         if i == n:
            return 0
         if not flag:
            return max(recur(i + 1, 1) - prices[i], recur(i + 1, 0))
         return max(recur(i + 1, 1), recur(i + 1, 0) + prices[i] - fee)

      return recur()

ob = Solution()
prices=[2,10,4,8]
fee=3
print(ob.solve(prices, fee))

输入

[2,10,4,8], 3

输出

6

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程