← [ BACK_TO_NOTES ]

算法、手写与 Machine Coding 面试题库

把算法模式、JavaScript/TypeScript 手写题与前端 Machine Coding 统一成可口述、可编码、可复盘的面试题库。

#synthesis #growing #algorithm #interview

[!info] related notes

算法、手写与 Machine Coding 面试题库

使用规则

  • 先折叠题卡闭卷口述,再展开答案;
  • 题源 只描述问题如何进入题库,答案依据 单独描述技术正确性;
  • NC-H 代表近期公开面经主题交叉出现,不代表公司官方题库;
  • AI-D 明确表示 AI 衍生的高价值追问;
  • 完整知识只维护在相关长期笔记,本页保存面试表达;
  • 项目题必须在面试前回动态 evidence index 核验,不临场编数字。

题源定义见 面试题来源、置信度与答案依据;回答方法见 技术面试回答框架。

数组 / Hash

[!question]- P1 ALG-001 Two Sum P0 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 思路:遍历数组,用 map 保存 value -> index,当前 x 查 target-x 是否已经出现。

展开要点 / 原始迁移内容 复杂度:O(n) time,O(n) space。

易错:如果题目要求不同下标,要先查再写或正确处理重复值。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-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]- P1 ALG-003 三数之和 P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 思路:排序后枚举第一个数,剩余区间双指针;跳过重复值。

展开要点 / 原始迁移内容 复杂度:O(n²) time。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-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]- P1 ALG-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]- P1 ALG-006 Top K 高频元素 P0 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 思路:HashMap 统计频率,再用大小 k 的最小堆按频率保留 top k;也可 bucket sort 达 O(n)。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-007 最大子数组和 P0 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 Kadane:

展开要点 / 原始迁移内容 dp = max(x, dp + x),全局维护最大值。

复杂度:O(n),O(1)。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-008 合并区间 P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 排序 start,遍历:若当前 start <= last.end 则 merge,否则 push 新区间。

展开要点 / 原始迁移内容 复杂度:O(n log n)。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

双指针 / 滑动窗口

[!question]- P1 ALG-009 接雨水 P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 双指针:维护 leftMax/rightMax;较低的一侧决定当前位置可接水量,再移动该侧。

展开要点 / 原始迁移内容 复杂度:O(n),O(1)。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-010 最小覆盖子串 P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 滑动窗口 + 计数。右扩直到覆盖目标,左缩找最小;维护满足的字符种类数,避免每次全量比较 map。

展开要点 / 原始迁移内容 复杂度:O(n + m)。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-011 盛最多水的容器 P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 双指针从两端,面积由短板决定;移动短板才可能变大。

展开要点 / 原始迁移内容 O(n),O(1)。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

链表

[!question]- P1 ALG-012 反转链表 P0 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC

30 秒回答 维护 prev/current/next,逐个反转 next 指针。

展开要点 / 原始迁移内容 O(n),O(1)。

继续追问

  • 先说不变量和数据结构,再写代码。
  • 时间/空间复杂度与最坏情况是什么?
  • 至少列出空输入、重复值和极端规模测试。

[!question]- P1 ALG-013 判断链表有环 P0 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC

30 秒回答 Floyd 快慢指针,fast 每次 2 步、slow 1 步,有环必相遇。

展开要点 / 原始迁移内容 O(n),O(1)。

继续追问

  • 先说不变量和数据结构,再写代码。
  • 时间/空间复杂度与最坏情况是什么?
  • 至少列出空输入、重复值和极端规模测试。

[!question]- P1 ALG-014 合并两个有序链表 P0 题源:NC-H(NC-BYTE-AGENT-01 / 近期公开面经交叉) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC

30 秒回答 dummy head + 双指针,每次接较小节点。

展开要点 / 原始迁移内容 O(m+n),O(1)(复用节点)。

继续追问

  • 先说不变量和数据结构,再写代码。
  • 时间/空间复杂度与最坏情况是什么?
  • 至少列出空输入、重复值和极端规模测试。

[!question]- P1 ALG-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]- P1 ALG-016 LRU Cache P0 题源:NC-H(NC-BYTE-AGENT-01 / 近期公开面经交叉) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC

30 秒回答 数据结构:HashMap + 双向链表。

展开要点 / 原始迁移内容

  • Map:O(1) 找 node。
  • 双链表:O(1) 把节点移动到 MRU 头部、淘汰 LRU 尾部。

get:不存在 -1;存在移到头。

put:存在更新+移头;不存在插头;超过 capacity 删除尾并删 map。

复杂度:get/put O(1)。

2026 AI 应用公开面经中再次出现。

继续追问

  • 先说不变量和数据结构,再写代码。
  • 时间/空间复杂度与最坏情况是什么?
  • 至少列出空输入、重复值和极端规模测试。

栈 / 单调栈

[!question]- P1 ALG-017 有效括号 P0 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 遇左括号 push;右括号检查 stack top 是否匹配。结束 stack 必须 empty。

展开要点 / 原始迁移内容 O(n)。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-018 每日温度 P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 单调递减栈保存 index;当前温度更高时不断 pop,答案为 i - j。

展开要点 / 原始迁移内容 O(n)。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-019 最小栈 P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 每个节点同时保存当前 min,或额外 min stack。push/pop/top/getMin 均 O(1)。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

二叉树

[!question]- P1 ALG-020 二叉树层序遍历 P0 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC

30 秒回答 BFS queue;每轮记录当前 queue size,处理一层。

展开要点 / 原始迁移内容 O(n)。

继续追问

  • 先说不变量和数据结构,再写代码。
  • 时间/空间复杂度与最坏情况是什么?
  • 至少列出空输入、重复值和极端规模测试。

[!question]- P1 ALG-021 最大深度 P0 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 DFS:1 + max(leftDepth, rightDepth);或 BFS 层数。

展开要点 / 原始迁移内容 O(n)。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-022 判断平衡二叉树 P0 题源:NC-H(NC-BYTE-AGENT-01 / 近期公开面经交叉) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC

30 秒回答 2026 Agent 面经出现。

展开要点 / 原始迁移内容 后序 DFS 返回 subtree height;如果子树已不平衡,返回 sentinel -1;若 abs(left-right)>1 也返回 -1,否则返回 max+1。

O(n),space O(h)。

比“每个节点重新算深度”O(n²) 更好。

继续追问

  • 先说不变量和数据结构,再写代码。
  • 时间/空间复杂度与最坏情况是什么?
  • 至少列出空输入、重复值和极端规模测试。

[!question]- P1 ALG-023 二叉树最近公共祖先 P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC

30 秒回答 普通二叉树:递归。当前等于 p/q 返回当前;left/right 都非 null 当前是 LCA;否则返回非 null 一侧。

展开要点 / 原始迁移内容 O(n)。

继续追问

  • 先说不变量和数据结构,再写代码。
  • 时间/空间复杂度与最坏情况是什么?
  • 至少列出空输入、重复值和极端规模测试。

[!question]- P1 ALG-024 验证二叉搜索树 P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 方法:DFS 带 (low, high) 范围;每节点必须严格在范围内。不要只比较 parent-child,因为右子树深层也必须大于祖先。

展开要点 / 原始迁移内容 O(n)。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

图 / DFS / BFS

[!question]- P1 ALG-025 岛屿数量 P0 题源:NC-H(NC-BYTE-AGENT-01 / 近期公开面经交叉) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC

30 秒回答 2026 大模型/Agent 面经出现。

展开要点 / 原始迁移内容 遍历 grid,遇陆地计数+1,从该点 DFS/BFS 把整个 connected component 标 visited/改 0。

O(mn) time,最坏 O(mn) space。

继续追问

  • 先说不变量和数据结构,再写代码。
  • 时间/空间复杂度与最坏情况是什么?
  • 至少列出空输入、重复值和极端规模测试。

[!question]- P1 ALG-026 课程表 / 拓扑排序 P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 建 directed graph 和 indegree;把 indegree=0 入队,每处理节点减少邻居 indegree;最终处理数等于课程数则无环。

展开要点 / 原始迁移内容 O(V+E)。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-027 最短路径(无权图) P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 BFS 第一次到达即最短边数;queue 里携带距离或按层计数。

展开要点 / 原始迁移内容 O(V+E)。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

动态规划

[!question]- P1 ALG-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]- P1 ALG-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]- P1 ALG-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]- P1 ALG-031 全排列 P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 path + used;长度 n 时收集;每层选择未用元素,递归后撤销。

展开要点 / 原始迁移内容 O(n·n!)。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-032 子集 P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 每到一个节点先收集 path,再从 start 继续选择。总结果 O(2^n)。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

二分

[!question]- P1 ALG-033 标准二分 P0 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC

30 秒回答 必须先确定区间语义 [l,r] 或 [l,r),循环和更新保持一致。

展开要点 / 原始迁移内容 O(log n)。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-034 搜索旋转排序数组 P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 每轮至少一半有序;判断 target 是否在有序半边范围,缩小区间。

展开要点 / 原始迁移内容 O(log n)。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

前端 / 异步手撕

[!question]- P1 ALG-035 Promise.all P0 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:Promise · async / await

30 秒回答 要求:

展开要点 / 原始迁移内容

  • 输入按 iterable 处理。
  • Promise.resolve 包装普通值/thenable。
  • 结果按原输入顺序,而不是完成顺序。
  • 任一 reject 立即 reject。
  • 空输入立即 resolve []。

继续追问

  • 先说不变量和数据结构,再写代码。
  • 时间/空间复杂度与最坏情况是什么?
  • 至少列出空输入、重复值和极端规模测试。

[!question]- P1 ALG-036 Promise.race P0 题源:NC-H(NC-BYTE-AGENT-01 / 近期公开面经交叉) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:Promise · async / await

30 秒回答 对每项 Promise.resolve(x).then(resolve, reject);第一个 settle 决定外层。空 iterable 永久 pending。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-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]- P1 ALG-038 EventEmitter P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 Map <event, Set<handler>>:on/off/emit/once。emit 时复制 handlers 可避免回调内部 off 导致迭代异常。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-039 retry with exponential backoff P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 只重试 transient error;delay 约 base * 2^attempt + jitter;支持 max attempts、AbortSignal。副作用操作必须幂等。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-040 深拷贝 P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 面试基础版可递归 + WeakMap 处理 cycle,并区分 Array/Object/Date/Map/Set。要主动说明 production 优先 structuredClone 或成熟库,具体取决于数据类型。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

前端 Machine Coding 题

[!question]- P1 ALG-041 Autocomplete P0 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 必须讲:debounce、request cancellation/race、cache、keyboard navigation、loading/error/empty、a11y。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-042 Infinite Scroll P0 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 IntersectionObserver 触发 next page;防重复请求;hasNextPage;错误重试;列表很长时 virtualization。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-043 Modal P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 Portal、focus trap、Esc、scroll lock、aria-modal、恢复原 focus、z-index stacking。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-044 File Upload P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 进度、取消、重试、大文件分片、hash/秒传(按题目)、服务端校验、MIME/size 安全。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-045 ChatGPT 风格流式聊天 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]- P1 ALG-046 Top K 热门内容 P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 单机:Hash count + heap;流式/大规模:时间窗口、approx counter/stream processing、分片汇总。先问数据规模,不要直接上分布式。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-047 URL 去重 P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:输入 URL 到页面展示 · 浏览器渲染过程

30 秒回答 小规模 Set;大规模可 hash partition / Bloom filter(允许 false positive 时)+ durable store。需要 canonicalization,否则同一 URL 不同形式。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

[!question]- P1 ALG-048 限流器 P1 题源:CANON(TECH-INTERVIEW-HANDBOOK / 长期题型) 答案依据:EXPERIMENT(可运行代码 + 边界测试)+ KB 考察意图:检查题型识别、正确性、复杂度、边界测试与表达过程。 相关知识:算法面试题型 MOC · 模拟面试训练闭环

30 秒回答 固定窗口简单但边界突刺;滑动窗口更平滑;token bucket 允许 burst;leaky bucket 控制恒定流出。分布式时需要共享原子 state(Redis/Lua 等)。

继续追问

  • 为什么这样判断?
  • 失败或边界场景怎么办?
  • 如何通过测试、指标或实验验证?

覆盖说明

本页由 23-algorithms-coding.md 中的 48 道编号题全量迁移;每题包含题源、答案依据、考察意图、知识链接和追问。近期题目趋势另由 题源注册表 管理,避免再次维护一套重复答案。

创建于 2026/9/2 更新于 2026/9/2
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本