news 2026/4/12 22:19:29

代码随想录算法训练营day 10-11:栈与队列,滑动窗口最大值,大小顶堆

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
代码随想录算法训练营day 10-11:栈与队列,滑动窗口最大值,大小顶堆

用**栈**解决“匹配,消除,计算”问题

这类题的共同点:当前状态,依赖于最近一次未处理完的状态

对应习题:20. 有效的括号,1047. 删除字符串中的所有相邻重复项,150. 逆波兰表达式求值

做这些题会有一种“消消乐”的感觉,当前元素和上一个元素如果满足某种条件,进行一次操作,循环往复,这种情况是栈的天然适配场景

用**设计结构**解决“区间,频率”问题

这类题的共同点:为“查询目标”定制数据结构

对应习题:239.滑动窗口最大值,347.前k个高频元素

这些题就体现了:队列比起一个“容器”,它更像一种“行为约束”,栈同理。

239.滑动窗口最大值

要做这题,首先要注意到一个关键事实:“当窗口内的某个元素的后续元素比它自身大时,这个元素就不可能成为最大值了”。

为什么呢?举个例子:假设窗口内元素为[ 4,3,2,5 ],窗口内的 4 ,3 ,2如果想成为最大值,需要等待比他们大的5滑出窗口,然而事实是,窗口向右滑动,4,3,2绝对比5先滑出窗口,所以在5进入窗口的那一刻,前三个元素已经不可能成为最大值

所以我们要做的是,维护一个非单增队列,储存可能成为当前窗口最大值的候选,队头是当前窗口最大值,窗口滑动后,若队头滑出窗口,队头出队即可,需要元素入队时,删除所有比该元素大的队尾元素,然后该元素进入队尾,由此来维护队列的“非单调递增性”,明白了这个单调队列的思想,剩下的操作就比较简单了。

347.前k个高频元素

这题可以用“”来做,即优先队列,堆的顶部永远是最大或最小值,所以,先用HashMap统计一遍频率,再把元素塞入堆,用大顶堆还是小顶堆呢?其实用小顶堆会更好,如果用大顶堆,那该堆需要维护所有的元素频率,再弹出顶部元素k次,得到topk,内存和时间都会有浪费。其实用容量为k的小顶堆即可,频率比堆顶大的元素就入堆,堆容量大于k就弹出顶部的最小频率,最后得到topk

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/4 2:44:12

【每日算法】LeetCode 234. 回文链表详解

对前端开发者而言,学习算法绝非为了“炫技”。它是你从“页面构建者”迈向“复杂系统设计者”的关键阶梯。它将你的编码能力从“实现功能”提升到“设计优雅、高效解决方案”的层面。从现在开始,每天投入一小段时间,结合前端场景去理解和练习…

作者头像 李华
网站建设 2026/3/31 8:03:47

LangFlow支持多种编程语言节点混合编排实战

LangFlow 多语言节点混合编排实战:打破技术栈壁垒的AI流程构建 在企业级AI系统开发中,一个常见的困境是:算法团队用Python写模型,后端服务由Java支撑,前端又有大量JavaScript文本处理逻辑。当我们要构建一个完整的智能…

作者头像 李华
网站建设 2026/4/10 17:41:55

基于springboot + vue高校宿舍管理系统

高校宿舍管理 目录 基于springboot vue高校宿舍管理系统 一、前言 二、系统功能演示 详细视频演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue高校宿舍管理系统 一、前言…

作者头像 李华
网站建设 2026/4/3 6:30:19

Golang中解析SQL语句为JSON格式常用的库介绍

在Go中解析SQL语句为JSON格式,常用的库有以下几种: 1. sqlparser(最常用) GitHub: https://github.com/xwb1989/sqlparser import ("github.com/xwb1989/sqlparser""encoding/json" )func parseSQLToJSON(sql…

作者头像 李华
网站建设 2026/4/1 3:06:24

基于Android的固定资产借用管理平台系统(源码+lw+部署文档+讲解等)

课题介绍本课题聚焦企事业单位、高校固定资产借用流程繁琐、归还提醒缺失、资产追踪困难的痛点,设计实现基于 Android 的固定资产借用管理平台。系统以 Java 为核心开发语言,基于 Android 原生框架搭建移动端应用,搭配轻量后端服务架构&#…

作者头像 李华
网站建设 2026/4/7 4:25:26

AI智能体落地实战指南:揭秘七大核心陷阱与解决方案,程序员小白必备的避坑宝典!

简介 本文揭示企业AI智能体落地的七大陷阱及解决方案:从业务场景切入而非为AI而AI、构建数据基础、采用成熟技术、确保安全可控、重塑人机协作、建立持续运维机制和规划能力中台。成功落地不仅是技术采购,更是运营模式和组织能力的重构,需以业…

作者头像 李华