标签题目
算法相关面试题
10G IP 文件、1G 内存,如何找出现最多的 Top10 IP?
这题考察海量数据精确 TopK 的分治思路、内存估算、全局正确性和数据倾斜处理。
图论算法具体有哪些?
这题考察图问题分类能力,要把问题类型、适用条件、图表示和复杂度一起说,而不是背算法名清单。
贪心算法和动态规划分别是什么?
这题考察候选人能否区分局部选择和状态枚举,关键是证明贪心安全性,并能写出 DP 的状态、转移、边界和遍历顺序。
两个大文件如何找共同出现的单词?
这题考大文件处理的内存约束意识,回答要先确认精确性和重复语义,再给出哈希分桶或外部排序方案。
手写快排及复杂度分析
这题不是只问快排定义,而是要求候选人能现场写出可运行的原地分区递归,并解释为什么平均 O(nlogn)、最坏 O(n²)、递归栈平均 O(logn)。高质量回答要把 partition 不变量、递归边界、重复元素处理和 pivot 优化一起讲清楚。
还有哪些 O(nlogn) 的排序算法,各自的原理和使用场景?
这题考察常见 O(nlogn) 比较排序的原理、复杂度、稳定性和场景选择,不能只列名字。
给你一个数组,其中元素是节点值以及父节点值,要求去重并还原树
这道题考察扁平数组转树的实现能力。关键不是只会 parentId 挂 children,而是先用 Map 按唯一 id 去重和建索引,再用第二遍挂载,明确重复 id、父节点后出现、多根、孤儿节点和循环引用的处理策略。
螺旋数组填充:给一个数组,返回一个 m*n 的矩阵,数从小到大顺时针螺旋填充矩阵,要求 |m-n| 尽可能小
这题考察矩阵尺寸选择和边界模拟。先根据数组长度找最接近的 m、n,再用四个边界按顺时针方向填充,重点处理单行单列和越界收缩。