算法、手写与 Machine Coding 面试题库
把算法模式、JavaScript/TypeScript 手写题与前端 Machine Coding 统一成可口述、可编码、可复盘的面试题库。
[!info] related notes
算法、手写与 Machine Coding 面试题库
使用规则
- 先折叠题卡闭卷口述,再展开答案;
题源只描述问题如何进入题库,答案依据单独描述技术正确性;NC-H代表近期公开面经主题交叉出现,不代表公司官方题库;AI-D明确表示 AI 衍生的高价值追问;- 完整知识只维护在相关长期笔记,本页保存面试表达;
- 项目题必须在面试前回动态 evidence index 核验,不临场编数字。
题源定义见 面试题来源、置信度与答案依据;回答方法见 技术面试回答框架。
数组 / Hash
[!question]-
P1ALG-001Two SumP0题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 思路:遍历数组,用 map 保存
value -> index,当前x查target-x是否已经出现。展开要点 / 原始迁移内容 复杂度:O(n) time,O(n) space。
易错:如果题目要求不同下标,要先查再写或正确处理重复值。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-002最长无重复子串P0题源:NC-H(NC-BYTE-AGENT-01/ 近期公开面经交叉) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 思路:滑动窗口。Map 记录字符最近位置;右指针扩张,出现重复时左边界跳到
max(left, last[ch]+1)。展开要点 / 原始迁移内容 复杂度:O(n) time,O(k) space。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-003三数之和P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 思路:排序后枚举第一个数,剩余区间双指针;跳过重复值。
展开要点 / 原始迁移内容 复杂度:O(n²) time。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-004合并两个有序数组P0题源:NC-H(NC-BYTE-AGENT-01/ 近期公开面经交叉) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 思路:如果 nums1 尾部有空间,从两个数组末尾开始比较,把更大值写到 nums1 末尾,避免覆盖未处理数据。
展开要点 / 原始迁移内容 复杂度:O(m+n) time,O(1) extra space。
这是 2026 AI Agent 面经里出现过的题型。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-005数组中的第 K 个最大元素P0题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 思路 1:维护大小为 k 的最小堆,遍历后堆顶就是第 k 大。
展开要点 / 原始迁移内容 复杂度:O(n log k),O(k)。
思路 2:Quickselect 平均 O(n),但实现和最坏情况更复杂。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-006Top K 高频元素P0题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 思路:HashMap 统计频率,再用大小 k 的最小堆按频率保留 top k;也可 bucket sort 达 O(n)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-007最大子数组和P0题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 Kadane:
展开要点 / 原始迁移内容
dp = max(x, dp + x),全局维护最大值。复杂度:O(n),O(1)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-008合并区间P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 排序 start,遍历:若当前 start <= last.end 则 merge,否则 push 新区间。
展开要点 / 原始迁移内容 复杂度:O(n log n)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
双指针 / 滑动窗口
[!question]-
P1ALG-009接雨水P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 双指针:维护 leftMax/rightMax;较低的一侧决定当前位置可接水量,再移动该侧。
展开要点 / 原始迁移内容 复杂度:O(n),O(1)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-010最小覆盖子串P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 滑动窗口 + 计数。右扩直到覆盖目标,左缩找最小;维护满足的字符种类数,避免每次全量比较 map。
展开要点 / 原始迁移内容 复杂度:O(n + m)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-011盛最多水的容器P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 双指针从两端,面积由短板决定;移动短板才可能变大。
展开要点 / 原始迁移内容 O(n),O(1)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
链表
[!question]-
P1ALG-012反转链表P0题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC30 秒回答 维护
prev/current/next,逐个反转next指针。展开要点 / 原始迁移内容 O(n),O(1)。
继续追问
- 先说不变量和数据结构,再写代码。
- 时间/空间复杂度与最坏情况是什么?
- 至少列出空输入、重复值和极端规模测试。
[!question]-
P1ALG-013判断链表有环P0题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC30 秒回答 Floyd 快慢指针,fast 每次 2 步、slow 1 步,有环必相遇。
展开要点 / 原始迁移内容 O(n),O(1)。
继续追问
- 先说不变量和数据结构,再写代码。
- 时间/空间复杂度与最坏情况是什么?
- 至少列出空输入、重复值和极端规模测试。
[!question]-
P1ALG-014合并两个有序链表P0题源:NC-H(NC-BYTE-AGENT-01/ 近期公开面经交叉) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC30 秒回答 dummy head + 双指针,每次接较小节点。
展开要点 / 原始迁移内容 O(m+n),O(1)(复用节点)。
继续追问
- 先说不变量和数据结构,再写代码。
- 时间/空间复杂度与最坏情况是什么?
- 至少列出空输入、重复值和极端规模测试。
[!question]-
P1ALG-015删除倒数第 N 个节点P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 dummy + fast 先走 n 步,再 fast/slow 同步,fast 到尾时 slow.next 是待删。
展开要点 / 原始迁移内容 O(n),O(1)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
LRU
[!question]-
P1ALG-016LRU CacheP0题源:NC-H(NC-BYTE-AGENT-01/ 近期公开面经交叉) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC30 秒回答 数据结构:HashMap + 双向链表。
展开要点 / 原始迁移内容
- Map:O(1) 找 node。
- 双链表:O(1) 把节点移动到 MRU 头部、淘汰 LRU 尾部。
get:不存在 -1;存在移到头。
put:存在更新+移头;不存在插头;超过 capacity 删除尾并删 map。复杂度:get/put O(1)。
2026 AI 应用公开面经中再次出现。
继续追问
- 先说不变量和数据结构,再写代码。
- 时间/空间复杂度与最坏情况是什么?
- 至少列出空输入、重复值和极端规模测试。
栈 / 单调栈
[!question]-
P1ALG-017有效括号P0题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 遇左括号 push;右括号检查 stack top 是否匹配。结束 stack 必须 empty。
展开要点 / 原始迁移内容 O(n)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-018每日温度P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 单调递减栈保存 index;当前温度更高时不断 pop,答案为
i - j。展开要点 / 原始迁移内容 O(n)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-019最小栈P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 每个节点同时保存当前 min,或额外 min stack。push/pop/top/getMin 均 O(1)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
二叉树
[!question]-
P1ALG-020二叉树层序遍历P0题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC30 秒回答 BFS queue;每轮记录当前 queue size,处理一层。
展开要点 / 原始迁移内容 O(n)。
继续追问
- 先说不变量和数据结构,再写代码。
- 时间/空间复杂度与最坏情况是什么?
- 至少列出空输入、重复值和极端规模测试。
[!question]-
P1ALG-021最大深度P0题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 DFS:
1 + max(leftDepth, rightDepth);或 BFS 层数。展开要点 / 原始迁移内容 O(n)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-022判断平衡二叉树P0题源:NC-H(NC-BYTE-AGENT-01/ 近期公开面经交叉) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC30 秒回答 2026 Agent 面经出现。
展开要点 / 原始迁移内容 后序 DFS 返回 subtree height;如果子树已不平衡,返回 sentinel -1;若
abs(left-right)>1也返回 -1,否则返回max+1。O(n),space O(h)。
比“每个节点重新算深度”O(n²) 更好。
继续追问
- 先说不变量和数据结构,再写代码。
- 时间/空间复杂度与最坏情况是什么?
- 至少列出空输入、重复值和极端规模测试。
[!question]-
P1ALG-023二叉树最近公共祖先P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC30 秒回答 普通二叉树:递归。当前等于 p/q 返回当前;left/right 都非 null 当前是 LCA;否则返回非 null 一侧。
展开要点 / 原始迁移内容 O(n)。
继续追问
- 先说不变量和数据结构,再写代码。
- 时间/空间复杂度与最坏情况是什么?
- 至少列出空输入、重复值和极端规模测试。
[!question]-
P1ALG-024验证二叉搜索树P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 方法:DFS 带
(low, high)范围;每节点必须严格在范围内。不要只比较 parent-child,因为右子树深层也必须大于祖先。展开要点 / 原始迁移内容 O(n)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
图 / DFS / BFS
[!question]-
P1ALG-025岛屿数量P0题源:NC-H(NC-BYTE-AGENT-01/ 近期公开面经交叉) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC30 秒回答 2026 大模型/Agent 面经出现。
展开要点 / 原始迁移内容 遍历 grid,遇陆地计数+1,从该点 DFS/BFS 把整个 connected component 标 visited/改 0。
O(mn) time,最坏 O(mn) space。
继续追问
- 先说不变量和数据结构,再写代码。
- 时间/空间复杂度与最坏情况是什么?
- 至少列出空输入、重复值和极端规模测试。
[!question]-
P1ALG-026课程表 / 拓扑排序P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 建 directed graph 和 indegree;把 indegree=0 入队,每处理节点减少邻居 indegree;最终处理数等于课程数则无环。
展开要点 / 原始迁移内容 O(V+E)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-027最短路径(无权图)P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 BFS 第一次到达即最短边数;queue 里携带距离或按层计数。
展开要点 / 原始迁移内容 O(V+E)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
动态规划
[!question]-
P1ALG-028爬楼梯P0题源:NC-H(NC-BYTE-AGENT-01/ 近期公开面经交叉) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 2026 前端面经出现。
展开要点 / 原始迁移内容
dp[n]=dp[n-1]+dp[n-2],只保存前两个状态。O(n),O(1)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-029打家劫舍P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答
dp[i]=max(dp[i-1], dp[i-2]+nums[i]);滚动变量降空间。展开要点 / 原始迁移内容 O(n),O(1)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-030零钱兑换P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 完全背包最小值:
dp[0]=0,其他 inf;对 amount 从 1..target,遍历 coin 或按完全背包写法更新dp[x]=min(dp[x], dp[x-coin]+1)。展开要点 / 原始迁移内容 O(amount * coins)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
回溯
[!question]-
P1ALG-031全排列P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 path + used;长度 n 时收集;每层选择未用元素,递归后撤销。
展开要点 / 原始迁移内容 O(n·n!)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-032子集P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 每到一个节点先收集 path,再从 start 继续选择。总结果 O(2^n)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
二分
[!question]-
P1ALG-033标准二分P0题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC30 秒回答 必须先确定区间语义
[l,r]或[l,r),循环和更新保持一致。展开要点 / 原始迁移内容 O(log n)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-034搜索旋转排序数组P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 每轮至少一半有序;判断 target 是否在有序半边范围,缩小区间。
展开要点 / 原始迁移内容 O(log n)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
前端 / 异步手撕
[!question]-
P1ALG-035Promise.allP0题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:Promise · async / await30 秒回答 要求:
展开要点 / 原始迁移内容
- 输入按 iterable 处理。
Promise.resolve包装普通值/thenable。- 结果按原输入顺序,而不是完成顺序。
- 任一 reject 立即 reject。
- 空输入立即 resolve
[]。继续追问
- 先说不变量和数据结构,再写代码。
- 时间/空间复杂度与最坏情况是什么?
- 至少列出空输入、重复值和极端规模测试。
[!question]-
P1ALG-036Promise.raceP0题源:NC-H(NC-BYTE-AGENT-01/ 近期公开面经交叉) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:Promise · async / await30 秒回答 对每项
Promise.resolve(x).then(resolve, reject);第一个 settle 决定外层。空 iterable 永久 pending。继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-037并发请求池P0题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 题意:N 个 async tasks,最多 concurrency=k。
展开要点 / 原始迁移内容 思路:启动 k 个 worker 共享下一个 index,worker 完成一个立即取下一个;或用 running promise set +
Promise.race控制。复杂度主要是任务本身,调度 O(n)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-038EventEmitterP1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 Map
<event, Set<handler>>:on/off/emit/once。emit时复制 handlers 可避免回调内部 off 导致迭代异常。继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-039retry with exponential backoffP1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 只重试 transient error;delay 约
base * 2^attempt + jitter;支持 max attempts、AbortSignal。副作用操作必须幂等。继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-040深拷贝P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 面试基础版可递归 + WeakMap 处理 cycle,并区分 Array/Object/Date/Map/Set。要主动说明 production 优先
structuredClone或成熟库,具体取决于数据类型。继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
前端 Machine Coding 题
[!question]-
P1ALG-041AutocompleteP0题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 必须讲:debounce、request cancellation/race、cache、keyboard navigation、loading/error/empty、a11y。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-042Infinite ScrollP0题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 IntersectionObserver 触发 next page;防重复请求;hasNextPage;错误重试;列表很长时 virtualization。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-043ModalP1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 Portal、focus trap、Esc、scroll lock、aria-modal、恢复原 focus、z-index stacking。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-044File UploadP1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 进度、取消、重试、大文件分片、hash/秒传(按题目)、服务端校验、MIME/size 安全。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-045ChatGPT 风格流式聊天P0题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:前端流式响应模式 · 前端 SSE 消费设计 · AI 对话与流式界面30 秒回答 必须讲:
展开要点 / 原始迁移内容
- POST request + streaming response。
- SSE parser/buffer。
- token/tool/citation/status event model。
- AbortController cancel。
- follow-scroll vs user-scroll。
- history + active run ownership。
- reconnect/idempotency。
- markdown incremental render。
这题与当前简历高度吻合。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
系统设计 + 算法结合题
[!question]-
P1ALG-046Top K 热门内容P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 单机:Hash count + heap;流式/大规模:时间窗口、approx counter/stream processing、分片汇总。先问数据规模,不要直接上分布式。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-047URL 去重P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:输入 URL 到页面展示 · 浏览器渲染过程30 秒回答 小规模 Set;大规模可 hash partition / Bloom filter(允许 false positive 时)+ durable store。需要 canonicalization,否则同一 URL 不同形式。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
[!question]-
P1ALG-048限流器P1题源:CANON(TECH-INTERVIEW-HANDBOOK/ 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+KB考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环30 秒回答 固定窗口简单但边界突刺;滑动窗口更平滑;token bucket 允许 burst;leaky bucket 控制恒定流出。分布式时需要共享原子 state(Redis/Lua 等)。
继续追问
- 为什么这样判断?
- 失败或边界场景怎么办?
- 如何通过测试、指标或实验验证?
覆盖说明
本页由 23-algorithms-coding.md 中的 48 道编号题全量迁移;每题包含题源、答案依据、考察意图、知识链接和追问。近期题目趋势另由 题源注册表 管理,避免再次维护一套重复答案。