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

超详细:LeetCode Hot 100 高频漏等号场景全总结

(专门解决:逻辑全对,一提交就错,一查就是少个 = / >= / <=)

我直接按题型+易错点+正确写法+为什么错+例题讲透,你以后刷 Hot100 按这个对照就行。


一、二分查找(漏等号重灾区)

Hot100 里几乎必考,80% 的边界错都在这里

1. 循环条件漏等号

  • 错误:while left < right
  • 正确:while left <= right

为什么错?

left <= right表示闭区间[left, right]
如果写成<最后一个元素永远不会检查,比如数组只有一个元素时直接返回 -1。

2. 收缩区间时漏等号(死循环根源)

  • 错误:
    ifnums[mid]<target:left=mid
  • 正确:
    ifnums[mid]<target:left=mid+1

为什么错?

不 +1 / -1,区间永远不收缩 →死循环

3. 找左边界/右边界时,把>写成>=

这类错最隐蔽:

  • 找第一个 ≥ target:if nums[mid] >= target
  • 找最后一个 ≤ target:if nums[mid] <= target

等号决定你往左还是往右收缩,一错就找不到正确边界。


二、滑动窗口(必错:窗口收缩条件)

Hot100 高频:最小子数组、无重复子串、最小覆盖子串

经典错误:把>=写成>

# 错误whilesum>target:# 正确whilesum>=target:

为什么错?

题目要求:和 ≥ target 的最小长度
漏等号 → 刚好等于 target 时不收缩窗口 → 答案永远偏大。


三、双指针(两数之和、三数之和、盛水最多)

1. 循环条件:left < right还是left <= right

  • 两数之和 / 三数之和 / 盛最多水的容器
    必须用:left < right
    不能带等号,否则同一个元素用两次。

2. 指针移动条件漏等号(死循环)

# 错误ifheight[left]<height[right]:left+=1# 正确ifheight[left]<=height[right]:left+=1

相等时必须移动其中一个指针,否则不动 → 死循环。

3. 三数之和去重漏等号

# 去重必须带等号whilei<jandnums[i]==nums[i+1]:i+=1

漏等号 → 结果重复,直接 Wrong Answer。


四、链表题(快慢指针、环形链表)

1. 环形链表判断条件

# 正确whilefast!=Noneandfast.next!=None:

漏任何一个非空判断,都会空指针异常

2. 找中点/倒数第N个

移动步数判断经常漏等号:

whilen>0:# 不能写 n >= 0,会多走一步

五、栈 / 单调栈(等号决定是否严格单调)

单调栈最容易错:严格递增 vs 非递减

  • 严格递增:nums[i] > stack.top()
  • 非递减:nums[i] >= stack.top()

漏等号 = 栈单调性直接错,结果全乱。


六、二叉树(递归边界、BFS 终止)

1. 高度/深度判断漏等号

ifroot==None:return0

空节点必须返回 0,这是递归边界等号

2. BFS 循环条件

whilenotqueue.empty():

本质也是边界判断


七、排序 & 贪心(自定义比较器)

Hot100 典型:合并区间、最大数

合并区间排序必须带等号

intervals.sort(key=lambdax:x[0])

比较时相等也要正常排序,否则区间无法合并。

最大数比较逻辑漏等号

ifa+b==b+a:return0

不处理相等 → 排序不稳定。


🔥 终极总结:Hot100 里哪些地方必须检查等号

我给你浓缩成一背就会的口诀:

  1. 二分查找:循环 <=,收缩 +1 -1
  2. 滑动窗口:满足条件必带 >=
  3. 双指针:相等要移动,去重要 ==
  4. 单调栈:严格 >,非严格 >=
  5. 区间合并:排序必写等号
  6. 所有边界:空、0、1个元素、最后一个元素

你下次写代码,只需要问自己 4 句

  1. 这里是闭区间吗?是 → 加=
  2. 题目是≥ 或 ≤吗?是 → 加=
  3. 不动会死循环吗?是 → 加=
  4. 测试等于、边界、空三个用例了吗?

只要按这个来,Hot100 90% 的边界错误直接消失。

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

相关文章:

  • 基于手机端的问卷调查小程序设计与实现
  • 乡村特产选购助手项目介绍
  • 新郑市靠谱的门窗门店有哪些
  • 迅雷链接解析工具_迅雷网盘解析
  • DeepSeek降AI指令vs专业降AI工具,哪个效果更好?实测揭晓
  • HJ123 预知
  • 医药企业如何系统性把握政策法规?一套系统解决信息碎片化难题
  • 舒展解僵硬,松弛养身心|武汉瑜伽伸展课程,禧悦解锁全身舒缓新体验 - 冠顶工业设备
  • 从BERT到ChatGPT:一文精通文本分类的N种姿势(附代码)
  • Europe can only be Europe.
  • OpenClaw的数据是存在哪里的?会上传到云端吗?深度解析
  • 2026年高端进口板材品牌决策咨询评测报告 - 品牌推荐
  • 代码随想录算法训练营第四十二天|52. 携带研究材料、518. 零钱兑换 II、377. 组合总和 Ⅳ、57. 爬楼梯(进阶)
  • 它和厂商推出的MaxClaw、Kimi Claw、WorkBuddy等是什么关系?深度解析
  • 产品表面清洁度检测设备,专业配套,国际标准-西恩士工业 - 工业设备研究社
  • 简传(局域网共享文本文件)
  • 2026迅雷下载不限速_迅雷下载下载加速
  • 为什么叫它‘数字打工人‘或‘硅基秘书‘?深度解析
  • 信管毕设简单的选题怎么选
  • ABB 2TAZ662012R2000电力监测仪表
  • OpenClaw能同时连接多个AI模型(如DeepSeek、Kimi)吗?深度解析
  • AI测试工程笔记 04:Codex + Playwright 自动修复 UI 自动化脚本
  • Java Scanner 类详解
  • ‘养虾‘和‘训虾‘有什么区别?深度解析
  • OpenClaw有官方操作界面吗?长什么样?深度解析
  • 什么是Amdahl定律?如果你优化了PHP-FPM的某个模块,如何衡量这个优化对整个系统性能的提升?
  • 基础科学几乎停滞,谁限制人类发展?科学家的猜测或许是正确的(视频脚本)
  • 并发和并行的区别是什么?在PHP-FPM的多进程模型中,是并发还是并行?
  • 周鸿祎说OpenClaw还有三个问题没解决,是哪三个?深度解析
  • python flask django外卖点餐配送系统网站设计和实现 员工