一、数据结构与算法
- 必考题型
• 数组/链表:反转链表、合并有序数组、环形链表检测、快慢指针(如找中点、判环)。
• 二叉树:前/中/后序递归与非递归遍历、层序遍历、最近公共祖先(LCA)、序列化与反序列化。
• 动态规划:背包问题(01背包、完全背包)、最长递增子序列(LIS)、编辑距离、打家劫舍、股票买卖系列。
• 字符串:KMP算法、最长回文子串(Manacher算法)、滑动窗口(如无重复字符的最长子串)。
• 图算法:DFS/BFS、拓扑排序、Dijkstra最短路径、并查集(Union-Find)。 - 高频考点
• 时间/空间复杂度分析:明确要求优化到O(N)或O(1)的题目(如多数元素、缺失数字)。
• 边界条件处理:空输入、负数、溢出(尤其是涉及乘法的题目)。
• 代码简洁性:能用一行代码解决的不用多行(如Python列表推导式)。 - 典型问题示例
• 题目:给定一个无序数组,找出最长连续序列的长度(要求时间复杂度O(N))。
• 思路:用哈希表记录每个数字是否存在,遍历时跳过非起点数字,只从序列起点开始计数。
二、机器学习基础
- 基础概念
• 过拟合与正则化:L1/L2正则化的区别、Dropout原理、早停法(Early Stopping)。
• 模型评估:ROC/AUC、PR曲线、F1 Score、交叉验证(K-Fold)。
• 特征工程:特征缩放(归一化 vs 标准化)、类别特征编码(One-Hot vs Target Encoding)、特征选择方法(卡方检验、互信息)。 - 经典算法
• 逻辑回归:损失函数推导(极大似然估计)、为什么用Sigmoid函数。
• 决策树:ID3/C4.5/CART的区别、信息增益 vs 信息增益比、Gini系数。
• SVM:核函数作用、对偶问题推导、软间隔与硬间隔的区别。
• 聚类算法:K-Means收敛性证明、DBSCAN密度可达性、肘部法则(Elbow Method)。 - 面试高频问题
• 推导题:从零推导逻辑回归的梯度下降公式。
• 场景题:样本不均衡时如何改进模型?(过采样、欠采样、调整损失权重、改用F1优化模型)
三、深度学习与前沿模型
- 核心知识
• CNN:卷积计算参数量、感受野计算、池化层的作用、ResNet残差连接的意义。
• RNN/LSTM:梯度消失问题、LSTM三个门的公式及作用。
• Transformer:自注意力机制计算过程、位置编码的作用、多头注意力的优势。
• 优化器:Adam vs SGD、学习率衰减策略、梯度裁剪(Gradient Clipping)。 - 大模型相关
• 微调方法:LoRA、Prefix-Tuning、Prompt Tuning的区别。
• 推理加速:KV Cache原理、量化的实现方式(FP16 vs INT8)。
• 工程问题:如何解决大模型训练中的显存不足?(梯度累积、模型并行、混合精度训练) - 高频问题示例
• 问题:Transformer为什么比RNN更适合长序列建模?
• 答案:自注意力机制可并行计算且直接建模全局依赖,而RNN依赖顺序计算且存在梯度消失问题。
四、系统设计题
- 常见场景
• 推荐系统:设计YouTube视频推荐系统(召回层、排序层、冷启动策略)。
• 搜索系统:实现倒排索引、TF-IDF计算、BM25算法优化。
• 分布式训练:参数服务器(PS)架构 vs All-Reduce通信、如何解决数据倾斜? - 设计要点
• 明确需求:先问清楚QPS、数据规模、延迟要求等约束条件。
• 模块拆分:分阶段设计(数据预处理、特征抽取、模型训练、在线服务)。
• 容错与扩展:数据分片、负载均衡、故障恢复机制。 - 示例问题
• 题目:设计一个实时短视频去重系统(近重复检测)。
• 思路:使用SimHash或局部敏感哈希(LSH)快速筛选候选集,再用帧级特征比对。
五、编程语言与工程能力
- Python相关
• 语言特性:深拷贝 vs 浅拷贝、GIL锁的影响、装饰器原理、生成器与迭代器区别。
• 内存管理:引用计数、垃圾回收机制、内存泄漏排查(如循环引用)。
• 并发编程:多进程 vs 多线程、协程(asyncio)、线程池的使用。 - C++相关(部分公司要求)
• 虚函数与多态:虚函数表原理、动态绑定机制。
• 智能指针:unique_ptr、shared_ptr、weak_ptr的使用场景。
• STL源码:vector扩容机制、红黑树在map中的应用。
六、数学与概率题
- 概率题
• 经典问题:抛硬币直到连续出现两次正面朝上,求期望次数;蓄水池抽样(Reservoir Sampling)。
• 贝叶斯公式:疾病检测问题(已知患病率和检测准确率,求检测阳性时的真实患病概率)。 - 线性代数
• 矩阵运算:SVD分解的应用、PCA降维步骤、正定矩阵的性质。
七、项目与行为问题
- 项目深挖
• STAR法则:清晰描述项目背景(Situation)、任务目标(Task)、具体行动(Action)、量化结果(Result)。
• 挑战与解决:重点说明技术难点(如数据稀疏性)和解决方案(如引入图神经网络)。 - 行为问题
• 团队协作:举例说明如何推动跨团队合作。
• 职业规划:未来3-5年的技术方向规划。
• 失败经历:重点体现复盘和改进能力。
应对策略
- 算法题:刷LeetCode高频题(Top 100 + 剑指Offer),重点掌握模板(如二分法、双指针)。
- 八股文:整理知识脑图,理解原理而非死记硬背。
- 系统设计:参考《Grokking the System Design Interview》并模拟实战演练。
- 项目复盘:提前准备2-3个技术深度足够的项目,确保能讲清技术选型逻辑。
掌握以上内容后,再结合目标公司的真题(如字节考强化学习、阿里重推荐系统),针对性查漏补缺即可。