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

Leetcode:单调栈系列

本人总结的单调栈大概有三类:

  • 求右边第一个比该元素大(小)的元素
  • 求左边第一个比该元素大(小)的元素
  • 求两边比该元素大(小)的元素

前两类一般是中等难度的题,完成一次单调栈即可,最后一类是困难难度,需要完成两次单调栈。

进一步地:

(1)求右边第一个比该元素大(小)的元素,采用倒序遍历:for i in range(n-1,-1,-1):

  • 求比该元素大的元素:单调栈stack总是保存当前最大的,小于等于当前的都pop出去while stack and stack[-1] <= current: pop
  • 求比该元素小的元素:单调栈stack总是保存当前最小的,大于等于当前的都pop出去while stack and stack[-1] >= current: pop

(2)求左边第一个比该元素大(小)的元素,采用正序遍历:for i in range(n):

  • 求比该元素大的元素:单调栈stack总是保存当前最大的,小于等于当前的都pop出去while stack and stack[-1] <= current: pop
  • 求比该元素小的元素:单调栈stack总是保存当前最小的,大于等于当前的都pop出去while stack and stack[-1] >= current: pop

推荐的刷题顺序:

(1)中等

402. 移掉 K 位数字

670. 最大交换

(2)困难

316. 去除重复字母

84. 柱状图中最大的矩形

85. 最大矩形

42. 接雨水

http://www.jsqmd.com/news/478639/

相关文章:

  • MCP:AI 世界的“USB-C”接口——深度解析模型上下文协议
  • Flutter 三方库 codemagic_app_preview 鸿蒙适配指南 - 实现 CI/CD 产物自动化预览、在 OpenHarmony 上打造工程化版本管理实战
  • OpenClaw框架图
  • 常用开源免费的串口录波 / 串口虚拟示波器软件
  • 深度解析对抗训练自编码器(Adversarial Autoencoder, AAE)
  • ProcessHacker性能计数器:创建自定义系统指标的终极指南
  • Day41 TensorBoard
  • 严格控制GOTO语句注意事项
  • 图算法中的边松弛与最短路径更新机制的技术6
  • 先知道“有什么”,再决定“学什么”
  • 2026-3-14 ABC算法题打卡
  • SpringCloud动态路由利器--router4j
  • 2026年毕业论文降AI过审技巧:学姐整理的保姆级攻略
  • 基于MATLAB环境,利用卷积神经网络-长短时记忆网络结合SE注意力机制的数据分类预测模型
  • Altium生成Gerber及CAM350、DFM检查
  • Gorilla项目管理工具:任务跟踪与团队协作API调用实践
  • 如何快速搭建高性能GraphQL服务器:Prisma与GraphQL的完美实战指南
  • {“code“:“40002“,“msg“:“Invalid Arguments“,“sub_code“:“isv.invalid-app-id“,“sub_msg“:“ 无效的AppID参数“}
  • 小爱音响L07A改装AUX血泪史:一根铜丝引发的“血案”与终极救赎
  • 100元打造便携显示器:PocketLCD完整物料清单与采购指南
  • 基于Django技术的建材销售平台(角色:用户、商家、管理员)
  • Git操作的基本命令
  • 3 xgboost
  • Schema.org未来路线图:2026年最新发展计划与功能预览
  • 代码随想录 Day-19(回溯算法)
  • 推荐使用:react-html-email - 优雅的React邮件模板库
  • 探秘 ESCRCPY:一款高效便捷的无线屏幕镜像工具
  • 动态代理详解
  • 通过git上传代码到gitlab(包含第一次上传)小结
  • wow-time时间操作说明