当前位置: 首页 > news >正文

121买卖股票的最佳时机解题记录

虽然不清楚卖出是什么时候,买入一定是指向其前面的最小值的。

可以用双指针解决:

func maxProfit(prices []int) int {
    min := prices[0]
    res := 0
    for _,v := range prices {
        if res < v-min {
            res = v-min
        }
        if v < min {
            min = v
        }
    }

    return res
}

但是我想知道单调栈是怎么做的
保证栈顶元素是目前最小的,比栈顶小的就入栈

func maxProfit(prices []int) int {
    stack := []int{prices[0]}
    res := 0 
    for i:=1; i<len(prices); i++ {
        if prices[i] < stack[len(stack)-1] {
			stack = append(stack, prices[i])
		} else {
            // 因为入栈的时候买入绝对是亏的,所以不入栈时可以考虑是否买入
            cur := prices[i] - stack[len(stack)-1]
            if cur > res {
                res = cur
            }
        }
    }
    return res
}

用贪心来解的话,dp[i]=max(dp[i-1], prices[i]-min_prices): 第i天最大利润是前一天卖出的利润或者今天卖出的利润其中最大的

func maxProfit(prices []int) int {
    dp := []int{0}
    min := prices[0]
    for i:=1; i<len(prices); i++ {
        cur := prices[i] - min
        if dp[i-1] > cur {
            dp = append(dp, dp[i-1]) 
        } else {
            dp = append(dp, cur)
        }
        if min > prices[i] {
            min = prices[i]
        }
    }
    return dp[len(dp)-1]
}
http://www.dtcms.com/a/96613.html

相关文章:

  • 数据不互通、审批慢?如何实现多系统智能协同
  • Java实现 自主学习一套身份证识别(识别营业执照信息和语音识别接口)
  • DeepSeek集成:如何将DeepSeek修炼成‘国殇剑舞‘
  • 数据库后续
  • python实现登录页面图形验证码
  • Pydantic字段元数据指南:从基础到企业级文档增强
  • 【软考备考】系统架构设计论文完整范文示例
  • iOS自定义collection view的page size(width/height)分页效果
  • 横扫SQL面试——事件流处理(峰值统计)问题
  • 8.3MW屋顶光伏+光储协同:上海汽车变速器低碳工厂的能源革命-安科瑞黄安南
  • 飞桨PP系列新成员PP-DocLayout开源,版面检测加速大模型数据构建,超百页文档图像一秒搞定
  • 解决 “Cannot read SQL script from class path resource [sql/XX.sql]“ 错误
  • 每日总结3.28
  • 卷积神经网络 - 转置卷积
  • Neo4j GDS-05-neo4j GDS 库中对应的中心性分析算法介绍
  • Netty——零拷贝
  • 上海SMT贴片技术解析与行业趋势
  • 【CSS3】02-选择器 + CSS特性 + 背景属性 + 显示模式
  • axios文件下载使用后端传递的名称
  • PyQt6实例_批量下载pdf工具_exe使用方法
  • OSPF邻居状态机
  • MAC环境给docker换源
  • 硬件老化测试方案的设计误区
  • open-cv的安装
  • 蓝桥杯[每日一题] 真题:连连看
  • 12 - AXI4接口之DDR读写实验
  • 深入解析缓冲区:计算机世界的“蓄水池”与“加速器”
  • Linux环境下安装部署Docker
  • ArayTS:一个功能强大的 TypeScript 工具库
  • nginx安装