标签:模板清除筛选

C++11 auto 类型推导:好用,但别无脑乱写

本文整理自技术讲解视频《告别冗长类型:auto 虽好,但切忌无脑到处乱用》 一、C++类型声明痛点 写 C++ 最没意义的一类劳动,就是重复编译器早就知道的东西。容器类型写在 begin 的返回类型里,可你还是得把 std::map::iterator 这一长串完整敲出来,敲完还得祈祷没拼错。复杂的嵌套返回类型更夸张,只能从别处复制粘贴一大段。 C# 用 var 早就解决了这类问题(隐式推导,

单调队列速查模板

识别信号:滑动窗口最大/最小值、形如 dp[i] = min(dp[j]) + ... 的 DP 优化。 口诀:去尾保单调(新人压制弱旧人)、去头保时效(队头滑出窗口)。 滑动窗口最大值模板 求最小值改 >=。peekFirst 空队返回 null,自动拆箱 NPE,先判空。 LC239 滑动窗口最大值 本文由 AgentPlanFlow 生成

二分查找速查模板

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 二分查

Java轻量多线程框架设计与实现

AsyncTaskPool 是一个轻量多线程框架,其核心代码不到 400 行,同时支持三种常用设计模式。 一、整体架构:三层角色 AsyncTaskPool 只有三个核心角色: BasicTaskDispatchPool——对外的门面。通过继承实现三个抽象方法:runTask(具体任务逻辑)、getFinishedCallback(全部完成后回调)、getItemTaskCallback(单个任务

单调栈速查模板

识别信号:"下一个更大/更小"、"接雨水"、"最大矩形"、"区间最值贡献"。 口诀:求大用减、求小用增(栈内单调性)。栈里存索引。 弹栈瞬间三信息同时到手:被弹元素(高)、新栈顶(左边界)、当前 i(右边界)。三类题共用这骨架,区别只在结算公式。 单调栈for 遍历数组,每轮两个动作: 弹栈(while):当前元素破坏单调性时,不停弹出栈顶。弹栈时拿到三样东西: 被弹元素(stack.pop )

链表五大套路

节点定义: 套路速查 套路 出现信号 虚拟头 dummy 删除/插入头节点、合并 快慢指针 找中点、判环、环入口、倒数第 K 原地反转 reverse、回文 分段处理 K 个一组、区间反转、奇偶 哈希标记 相交链表、复制随机链表 2.1 虚拟头 dummy 需要删除或插入头节点的场景,用