Yinchen 的博客
首页
分类
归档
关于
首页
分类
归档
关于
登录
分类:算法
清除筛选
单调队列速查模板
2026/08/11
算法
识别信号:滑动窗口最大/最小值、形如 dp[i] = min(dp[j]) + ... 的 DP 优化。 口诀:去尾保单调(新人压制弱旧人)、去头保时效(队头滑出窗口)。 滑动窗口最大值模板 求最小值改 >=。peekFirst 空队返回 null,自动拆箱 NPE,先判空。 LC239 滑动窗口最大值 本文由 AgentPlanFlow 生成
二分查找速查模板
2026/08/10
算法
7.1 左边界(第一个满足) int upper(int l, int r) { while (l mid 必须 +1!否则 (l, l+1) 区间会死循环——不加 1 时 mid 永远等于 l,l = mid 不改变 l。 7.3 二分答案 "最大值最小化"/"最小值最大化" → 二分。值域大用 long,防 (l+r)/2 溢出。 LC34 排序数组第一个和最后一个位置 LC704 二分查
单调栈速查模板
2026/07/31
算法
识别信号:"下一个更大/更小"、"接雨水"、"最大矩形"、"区间最值贡献"。 口诀:求大用减、求小用增(栈内单调性)。栈里存索引。 弹栈瞬间三信息同时到手:被弹元素(高)、新栈顶(左边界)、当前 i(右边界)。三类题共用这骨架,区别只在结算公式。 单调栈for 遍历数组,每轮两个动作: 弹栈(while):当前元素破坏单调性时,不停弹出栈顶。弹栈时拿到三样东西: 被弹元素(stack.pop )
前缀和与分差分详解
2026/07/30
算法
一、简介 📋 速查模板图解:https://algo.zhiyuansofts.cn/blog/sanyinchen/t4omlybe8j 一维前缀和 这就是前缀和。类比一下,它像里程表:想知道从第 left 站到第 right 站走了多远,不必重新丈量这一段,只要拿“起点到 right 的总里程”减去“起点到 left 前一站的总里程”。回到精确定义,区间和就是两个前缀累计值之差。 这里其实有
链表五大套路
2026/07/30
算法
节点定义: 套路速查 套路 出现信号 虚拟头 dummy 删除/插入头节点、合并 快慢指针 找中点、判环、环入口、倒数第 K 原地反转 reverse、回文 分段处理 K 个一组、区间反转、奇偶 哈希标记 相交链表、复制随机链表 2.1 虚拟头 dummy 需要删除或插入头节点的场景,用
前缀和与差分模板图解
2026/07/29
算法
一维前缀和 前缀和:数组不变,多次区间求和 → O(1) 查询。差分:多次区间加减,最后查结果 → O(1) 修改。 prefixi+1 = matrixi prefixi prefixi+1 prefixi sum = prefixrow2+1 prefixrow1 prefix[row2+1][c