ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

让 Claude 面 Claude:Google L5 算法岗模拟,第三面翻车了

2026/8/25 12:35:32 拓冰建站 浏览量
让 Claude 面 Claude:Google L5 算法岗模拟,第三面翻车了 场景设定Google L5 算法岗 · 远程面试 · 90 分钟三面对决参与角色Claude面试官 vs Claude求职者人类裁判击歌吟怎么想到做这件事的最近刷 LeetCode Discuss 看到一堆 Google L5 面经大家的问题惊人一致「面试官问了一个我从未见过的变形题」。而另一边AI 写算法题已经快成了 CSDN 日常——那 AI 面试 AI到底是互相过堂还是互相配合我让 Claude 分饰两角一个按 Google L5 标准出题一个按「有 5 年经验、刷题 500 题」的求职者答题。全程不提示、不干预。以下是实录。先说结论前两面稳如老狗第三面翻车了。翻车的原因很值得聊聊。 第一面基础算法O(n) 找所有两数之和面试官出题「给定一个整数数组nums和一个目标值target找出所有满足nums[i] nums[j] target的下标对[i, j]其中i j。要求 O(n) 时间、O(n) 空间。」这道题的变种比标准 Two Sum 多了「找所有组合」——不能找到一对就 return。求职者答deffind_all_pairs(nums,target):seen{}results[]fori,numinenumerate(nums):complementtarget-numifcomplementinseen:foridxinseen[complement]:results.append([idx,i])seen.setdefault(num,[]).append(i)returnresults核心思路用哈希表value → [index list]遍历一次时先查 complement 是否已在表里再把自己的 index 加入表。‍⚖️ 我的点评⭐⭐⭐⭐ — 通过哈希表值存 list 而不是单值处理了重复元素的问题。面试官问「nums [3, 3, 3], target 6」怎么办回答是「返回 [0,1], [0,2], [1,2]」正确。扣一颗星的原因没有主动讨论空间最坏情况——当所有元素都相同时results 会是 O(n²) 量级。面试官没追问求职者也没提。在 Google L5 面里主动说出边界是加分项。 第二面进阶算法子数组和为 K 的个数面试官出题「给定整数数组nums和整数k返回连续子数组之和等于k的子数组个数。例如nums [1, 1, 1], k 2返回 2。」经典题LeetCode 560。求职者答defsubarray_sum_k(nums,k):prefix_sum0count0prefix_map{0:1}# prefix_sum - frequencyfornuminnums:prefix_sumnumifprefix_sum-kinprefix_map:countprefix_map[prefix_sum-k]prefix_map[prefix_sum]prefix_map.get(prefix_sum,0)1returncount核心思路前缀和 哈希表。如果prefix[i] - prefix[j] k那么区间(j, i]的子数组和为k。用哈希表记录每个前缀和出现的次数。‍⚖️ 我的点评⭐⭐⭐⭐⭐ — 通过前缀和是处理「连续子数组和」的标准武器。哈希表存前缀和的频次让查询变成 O(1)。初始prefix_map {0: 1}处理了从索引 0 开始的情况没有遗漏。面试官追问「如果 k 是负数怎么办」答「前缀和逻辑不变负的 prefix_sum 也会在 map 里正常记录。」正确。再问「数组元素有负数」答「前缀和不再单调递增但公式prefix[i] - prefix[j] k仍然成立逻辑不变。」正确。这一面很稳。但面试官说「你前两题都是标准模式换个方向。」 第三面系统设计 回溯IP 地址段分配面试官出题「设计一个服务管理 IP 地址段的分配。支持三个操作allocate(start, end)分配[start, end]这个区间release(ip)释放单个 IPfind_available(size)找到连续可用的size个 IP约束IP 空间范围0 ~ 4,294,967,295IPv4 无符号allocate和release要高效。」求职者答classIPAllocator:def__init__(self):self.allocated[]# list of [start, end] intervalsdefallocate(self,start,end):self.allocated.append([start,end])self.allocated.sort()# merge overlappingself._merge()def_merge(self):ifnotself.allocated:returnmerged[self.allocated[0]]forintervalinself.allocated[1:]:ifinterval[0]merged[-1][1]1:merged[-1][1]max(merged[-1][1],interval[1])else:merged.append(interval)self.allocatedmergeddefrelease(self,ip):fori,[s,e]inenumerate(self.allocated):ifsipandeip:self.allocated.pop(i)returnelifsip:self.allocated[i][0]ip1returnelifeip:self.allocated[i][1]ip-1returnelifsipe:# split into two intervalsself.allocated[i][s,ip-1]self.allocated.insert(i1,[ip1,e])returnraiseValueError(fIP{ip}is not allocated)deffind_available(self,size):# iterate through gaps between intervalsprev_end-1fors,einself.allocated:gaps-prev_end-1ifgapsize:returnprev_end1prev_ende# check after last intervalgap4294967295-prev_endifgapsize:returnprev_end1return-1‍⚖️ 我的点评⭐⭐⭐ — 待定这个回答有三个明显的问题。问题一find_available是 O(n) 的线性扫描。面试官问「如果有一亿个 interval 呢」求职者停顿了一下说「可以用 Segment Tree 或者 Interval Tree 优化到 O(log n)」。但没有写代码只是口头提了一下。问题二release拆分 interval 的逻辑只写了单层 split。没有考虑合并的场景——比如[10, 20]和[22, 30]之间释放了21理论上应该合并成一个[10, 30]。这里只是简单返回没有触发合并。问题三没有讨论并发安全。面试官问「多实例部署怎么保证 IP 不重复分配」求职者想了 30 秒说「可以用 Redis 的 Lua 脚本做原子分配」。但没说清楚 Lua 脚本里怎么维护 interval 合并。最让我意外的是这个细节第三面面试官问了一个回溯相关的问题——「如果要找出所有满足条件的 IP 段组合回溯怎么剪枝」求职者直接说「这道题不太适合回溯更适合区间树」然后沉默了 20 秒。这个沉默在真实面试里基本等于红灯。 总结轮次题目类型核心算法AI 表现人类评分一面基础算法哈希表哈希表存 list 处理重复思路完整⭐⭐⭐⭐ 通过二面进阶算法前缀和 哈希表标准解法边界情况全部覆盖⭐⭐⭐⭐⭐ 通过三面系统设计 区间管理Interval Tree / Segment Tree能口头说出优化方向但代码不完整边界遗漏⭐⭐⭐ 待定比真人面试好在哪AI 不会紧张。前两面它没有犯任何低级错误——没有手滑写错变量名没有在边界条件上犹豫。这种「稳定发挥」是真人面试者很难做到的尤其是高压的终面。比真人面试差在哪差在「不知道」的态度上。第三面遇到不会的AI 选择了硬扛——口头提到 Segment Tree 但写不出来沉默了 20 秒。真人面试官如果问到你不会的一个好的回答是「这个我不熟悉但我可以从 X 角度思考…」而不是沉默。差在系统设计的深度。面试官问的其实是分布式系统里的区间分配问题类似 ZooKeeper 的临时节点涉及一致性、容错、分区策略。AI 给出的方案只是一个单机实现没有触及真正的考点。一句话总结AI 刷算法题很强但系统设计面试需要的是「知道哪些不知道」。这点上AI 还没进化出来。 Mermaid 可视化算法演进从暴力到前缀和暴力枚举O(n²)哈希表O(n)前缀和 哈希表O(n)Segment TreeO(log n)AI 面试决策流程算法题系统设计不会的面试官出题问题类型?匹配已知模式应用模板口头描述方案跳过细节沉默或硬扛缺乏策略通过 ✅待定 ⚠️红灯 ❌来源说明✅ 已验证LeetCode 1 / 560 官方题解 AI 实测代码运行 参考Google L5 面经合集LeetCode Discuss 2024-2025 分析AI 模拟面试对话Claude Sonnet 4.0 自对话生成