LeetCode-单调栈
🧠 单调栈✅ 什么时候用👉 题目出现这三个词 → 直接上单调栈: 右边 / 左边 第一个 更大 / 更小 ⚡ 核心:谁被弹出,谁结算答案 ⭐ 模板1234567891011121314151617181920// 1. 初始化int n = nums.leng...
LeetCode-前缀和
🧠 通过提前累计数组的“历史和”,将任意连续区间的求和问题,转化为两次前缀值的相减。 一句话结论:👉pre 数组要比原数组的长度多一pre[0] = 0 是为了统一公式,避免边界特判前缀和 + 哈希: 找历史区间 ⭐ 模板前缀和 初始化int n = nums.l...
LeetCode-滑动窗口
🧠 通过移动 right 和 left,始终维护一个 [left, right] 的连续区间,并根据题目条件不断扩大或缩小这个区间。 一句话结论:👉 right 进窗(for 循环控制只增不减) left 出窗(只在 while (满足条件) 时移动只增不减)注意窗口状态,遇到出现次数与不...
LeetCode-左右双指针
🧠 解决具有单调性(Monotonicity)或需要两端向中间收缩的问题。 一句话结论:👉 数组有序(前提) 结构由两端点决定 可利用左右的元素的对称关系 可以排除出界元素在 while 循环内部如果还有指针移动(如跳过空格),必须再次判断 left < right,否则会发生索引越...
LeetCode-快慢指针(数组)
🧠 要求保持相对顺序原地修改,且要”删除/筛选/移动”元素 一句话结论:👉 四个问题:结构变不变(判断是否适用),什么情况可以保留,slow,fast快慢指针的核心不在于“删除”,而在于**“保留”**。 思路逆转:不要管哪些元素要删掉,只关心 “哪些元素应该被保留”,...
LeetCode-双链表法
🧠 需要对链表节点进行分类,并且必须保持原有相对顺序的问题 一句话结论:👉 双链表法用于 在算法中同时维护两条(或多条)逻辑链表 的问题。双链表法不是链表类型,而是一种解题模型:当题目需要对链表节点进行「筛选 / 分类 / 合并」,并且要求保持原有顺序时,就通过 dum...
LeetCode-链表过滤(dummy + prev + curr)
🧠 链表过滤(dummy + prev + curr)通过遍历链表,将满足特定条件(如值等于 target)的节点通过修改指针“跳过”并移除,从而得到一个清洗后的新链表 一句话结论: 👉 LeetCode 中 所有可能删除头节点的链表题👉 本质上 都可以反向映射为同一个删除模板 ⭐...
故都的秋
那年北国的秋天,风冷、叶黄、天高。郁达夫写下了故都的秋,也写下了一段关于孤独的诗意。


