01常见题
算法与编程面试题 示例
这些
| 题目 | 面试官关注什么 | 可能的追问 |
|---|---|---|
| R2 · 专业能力与案例 | ||
| Q01 如何 | 用计数表两次遍历, | 如果 |
| Q02 解释 | 先给出用集合 | 为什么 |
| Q03 判断 | 递归时向下 | 改成 |
| Q04 给定由陆地和水组成的网格, | 从每个未访问的 | 如果网格每次只改 |
| Q05 返回无序数组中第 k 大的数。 | 以排序 | 如果数组大到内存 |
| Q06 给定每天的 | 一次遍历并记录 | 如果 |
02试答一题
算法与编程面试练习:先讲清一道题的思路
从上面的题目中挑一道,先写下你的回答。在你请求反馈之前,草稿只保存在当前浏览器。
03技术练习室
可在 技术 练习室运行的 算法题
每道题都可以
| 题目 | 解题模式 | 难度 | 目标时间复杂度 | 目标空间复杂度 |
|---|---|---|---|---|
| 01查找 | 哈希表 | 简单 | O(n) | O(n) |
| 02有效 | 栈 | 简单 | O(n) | O(n) |
| 03搜索 | 二分查找 | 简单 | O(log n) | O(1) |
| 04合并 | 双指针 | 简单 | O(m + n) | O(m + n) |
| 05合并 | 排序 · 区间 | 中等 | O(n log n) | O(n) |
| 06字母异位词分组 | 哈希表 · 字符串 | 中等 | O(n · k log k) | O(n · k) |
| 07无重复 | 滑动窗口 · 哈希表 | 中等 | O(n) | O(k) |
| 08前 K 个高频元素 | 哈希表 · 堆 / 桶 | 中等 | O(n log k) | O(n) |
| 09LRU 缓存模拟 | 设计 · 哈希表 + 链表 | 中等 | O(1)(每次操作) | O(capacity) |
| 10滑动窗口 | 单调队列 · 滑动窗口 | 困难 | O(n) | O(k) |
打开技术练习室需要登录账号。
04答题示例
返回数组中 出现 频率 最高的 k 个数。
编码
- 01
澄清
k 会不会
超过 不同 数字的个数? 结果 需要 排序吗? 我先 假设 k 合法、 结果 顺序 不限。 - 02
基础解法
先用哈希表计数,
再按 次数给不同的数排序: 最坏 O(n log n)。 - 03
优化
扫描
计数时维护 一个 大小 为 k 的 最小堆, 做到 O(n log k); 按次数分桶还可以 做到 O(n)。 - 04
验证
收尾前,
我会跑一个频次并列的 用例, 以及 k 恰好 等于 不同 数字个数的 情况。
05答题建议
算法与编程面试答题 要点
这样答更有效
- T1动手前先复述
题目, 确认 输入 规模、 是否有重复、 空输入 以及 返回值类型。 - T2用一句
话说出暴力解和 复杂度, 再去优化——面试官想看到这一步是 怎么 走过来的。 - T3边写
边讲, 说清循环 始终 保持的不变量。 - T4说“写完了”
之前, 先用 一个 普通 用例和 一个 边界 用例手动走一遍 代码。
算法与编程面试常见误区
- M1闷头写十分钟,
面试官既帮不上忙, 也看不到 你的 思路。 - M2直接默写背过的
最优解, 却讲不清 为什么 对。 - M3只说 O(n) 却不说明 n 指什么,
或忽略哈希表占用的 空间。 - M4只用
题目给的 例子 测试。 - M5紧张时变量
随手 起名 a、b、tmp, 写到 后面 自己都看不懂。
06国内求职
国内 算法与编程面试 怎么 准备
校招更看手写,社招更看落地
校招的
编程题在三轮模拟里的 位置
国内
写完之后的“代码深挖”
很多
07推荐工具
算法与编程面试 练习 工具
- JS · Python公开用例
技术面试练习室
在浏览器里用 JavaScript 或 Python 运行
下方 题目的 公开 用例, 无需安装 环境, 还能保存 草稿 以便 讨论。 - 4 位面试官R1–R3文字 · 语音
对话式 AI 模拟面试
把保存的
解法 讲给 技术 面试官听, 他会追问 复杂度, 以及你放弃了 哪些备选方案。 - 语速口头禅 · 停顿
面试口语练习
录一段
两分钟的 思路 讲解, 看看语速或口头禅有 没有 影响 表达。