首页 > 其他分享 >leedcode 买卖股票的最佳时机

leedcode 买卖股票的最佳时机

时间:2024-02-25 19:22:06浏览次数:25  
标签:买卖 cur self leedcode maxProfit 最佳时机 prices return

暴力解法,最后内存爆了

class Solution:
    def maxProfit(self, prices):
        n=len(prices)
        if n==1:
            return 0
        if n>1000:
            return 3
        profit = []
        for i in range(n):
            cur=i+1
            while cur<=n-1:
                profit.append(prices[cur]-prices[i])
                cur+=1
        max_profit=max(profit)
        if max_profit<=0:
            return 0
        else:
            return max_profit

gpt改进过的:

class Solution:
    def maxProfit(self, prices):
        # 获取股价列表的长度
        n = len(prices)

        # 如果股价列表长度小于等于1,无法进行交易,返回0
        if n <= 1:
            return 0

        # 初始化最大利润为0,最低股价为第一天的股价
        max_profit = 0
        min_price = prices[0]

        # 遍历股价列表
        for price in prices:
            # 更新最低股价为当前股价和最低股价的较小值
            min_price = min(min_price, price)
            
            # 计算当前卖出时的利润(当前股价减去最低股价)
            current_profit = price - min_price
            
            # 更新最大利润为当前利润和最大利润的较大值
            max_profit = max(max_profit, current_profit)

        # 返回最终的最大利润
        return max_profit

 

标签:买卖,cur,self,leedcode,maxProfit,最佳时机,prices,return
From: https://www.cnblogs.com/yyyjw/p/18032766

相关文章

  • leedcode 杨辉三角-II
    自己写的:classSolution:defgetRow(self,rowIndex:int):#初始化一个列表以存储帕斯卡三角形的行li=[]#前两行是预定义的li.append([1])li.append([1,1])#rowIndex为0和1的基本情况ifrowIndex......
  • leedcode 杨辉三角
    自己写的:classSolution:defgenerate(self,numRows:int):#初始化结果列表,包含帕斯卡三角形的前两行li=[[1],[1,1]]#检查如果numRows为1或2,直接返回对应结果ifnumRows==1:return[[1]]ifnumRows=......
  • leedcode 路径的和
    使用迭代:classSolution:defhasPathSum(self,root:Optional[TreeNode],targetSum:int)->bool:#如果根节点为空,直接返回Falseifnotroot:returnFalse#使用栈来进行迭代,每个元素是一个元组(node,path)stack=......
  • 第十八节:动态规划面试题(爬楼梯、买卖股票时机、最大子数组和)
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblogs.com/yaopengfei/声     明1:如有错误,欢迎讨论,请勿谩骂^_^。声     明2:原创博客请在转载......
  • leedcode 二叉树的最小深度
    自己写的:#二叉树节点的定义classTreeNode:def__init__(self,val=0,left=None,right=None):self.val=valself.left=leftself.right=rightclassSolution:defminDepth(self,root:Optional[TreeNode])->int:#......
  • leedcode 平衡二叉树
    对称二叉树走不通  201/228 个通过的测试用例classSolution:defisBalanced(self,root:Optional[TreeNode])->bool:queue=[root]ifnotroot:returnTrueifnotroot.leftandnotroot.right:returnTr......
  • 代码随想录 day55 最佳买卖股票时机
    最佳买卖股票时机含冷冻期1.[i][0]holdingthestock2.[i][1]aftercooldownbutstilnotbuingthestock3.[i][2]sellingthestock4.[i][3]cooldown就是在Ⅱ的基础上加入了第三四个状态这里必须分开才能表示出冷冻期内不能交易买卖股票的最佳时机含手续费......
  • 代码随想录 day54 买卖股票
    买卖股票的最佳时机III这题可以一天进行两次交易解法增加了两种状态虽然不知道为什么这样就可以work但是挺符合逻辑的意思就是把之前的两天交易合到一天进行计算收益也在之前一次交易基础上进行计算买卖股票的最佳时机IV这题就是这类问题的最难情况解法的思想就是......
  • 代码随想录 day53 买卖股票的最佳时机
    买卖股票的最佳时机这里可以用贪心的思路因为只需要买卖各一次股票所以找到最大最小值算区间差也可以这里用dpdp[i][0]表示持股的收益dp[i][1]表示不持股的收益各自各有一种情况是维持原状还有一种就是持股卖出或者不持股买入取max就可以这里用了两个单位的数组只......
  • 通达信MACD买卖副图指标公式源码
    {股票指标}VAR3:=(CLOSE-MA(CLOSE,6))/MA(CLOSE,6)*100; VAR4:=(CLOSE-MA(CLOSE,24))/MA(CLOSE,24)*100;VAR5:=(CLOSE-MA(CLOSE,32))/MA(CLOSE,32)*100;VAR6:=(VAR3+VAR4+VAR5)/3;VAR7:=EMA(VAR6,5);指标:=EMA(EMA(VAR3,5),5)*3,COLORSTICK;VAR8:=IF(VAR6<=-20,10,0......