近几个月,有了充裕的时间学习和练习算法面试。 开了个博客记录C++ Leetcode进展:https://robinali34.github.io/blog_leetcode/
是时候写一写小结了。
- 算法面试考核什么?
- 数据结构的熟练度: C++ STL + 数据结构
- 算法: 算法熟练度,分类掌握,熟悉对应模板,抽象具体问题->算法选择->基于runtime的筛选->解法实现
- 有效沟通: 面试同时是筛选这个求职者能不能处,能不能有效沟通,把模糊的需求细化和准确高效的实现
- 软件工程基础: 比如代码整洁度,快速纠错,合规的代码结构(https://google.github.io/styleguide/cppguide.html)
- 如何准备算法面试
- 迭代学习: 面试是多轮的迭代, 从简单+基础的内容入手, 多轮练习, 不求一蹴而就。 每一轮新的学习,会遇到新的a-ha灵机一动的时刻,前一轮的难点逐步的拿下, 当前环节的难点细节记下来,待第二天或者下一轮再去尝试, 会有惊喜
- 数据结构:理论学习+多练 任何一本C++数据结构的书都可,先了解有哪些数据结构,再结合练习去回顾和加深理解
- 算法: 理论学习+Leetcode 从简单题入手, 入门级课程开始,然后多轮迭代练习。 按分类和模板+随机题 同步刷题。 分类+模板加深理论学习的熟练度, 随机题练解題套路(步骤)和熟练度
- 有效沟通: 多练,找人mock(记录反馈)
- 软件工程基础: 查漏补缺,记录练习/面试准备中找到的不足+针对性练习
- 算法面试的易错点:
- 量>质: 我遇到的第一个坑就是单纯追求Leetcode刷题的数目, 第二次遇到同样的题依然不会,非常消耗积极性和自信
- 不练模板: 每个数据结构都有它的常用API, 每种算法都有针对不同问题组的多个模板。 融会贯通模板是快速有效的解题的基础
- 没有时间敏感度: 不同面试有完全不同的严格的时间要求, 应当针对性规划解题的时间,多长时间读题,多久分析和选择算法,多久代码实现,多久差错和测试, 都应该了熟于心
- 没有适合自己的规划: 全职准备算法面试不代表每天8小时纯刷题,应该按照自己的需求安排学习&复习的时间; 兼职准备不代表三天打鱼俩天晒网,定一个最低要求(譬如每日一题)
- 算法面试的准备安排:
- 先分类,然后针对性的去练习
- 列表, 按照自己的舒适度去练习, 可以跳过熟悉的内容,遇到不理解的部分可以暂时放下 找找视频教学 再入手
- 多轮的准备: 软件设计本质上也是多轮迭代,从基本功能实现开始,在新的版本中添加新的内容,逐步完善才能成为一个优质多功能的好软件。 面试也是一样的道理,从基础入门,先了解什么是数据结构什么是算法,看看视频+教程,再加入多轮不同难度的练习。 注意别给自己定超出能力的目标,别陷入焦虑陷进,甚至厌学。 适当的修改当前的目标,学习和练习都应当是轻松愉快的过程。
- 清醒的定位:面试是充分的准备+概率性回报, 不要以面试过不过来定义自己的成败。 学习总是有回报的,和上周的自己比较,有提高就是成功。 如果面试内容只是简单题,那么掌握基础数据结构+简单算法就足够,如果是高难度题,那么就对基础+熟练度+综合实力+运气 都有要求
- 准备的相关资料
- 数据结构和算法的公开课程: 优先选名校,中英文都有很好的免费课程在B站和油管都有不错的选择
- 力扣中文:
- 学习计划: https://leetcode.cn/studyplan/
- Leetbook: https://leetcode.cn/leetbook/
- Leetcode explore: https://leetcode.com/explore/
- 针对题目的解法: 公开视频,官方题解, AI解答(如Chatgpt, Deepseek)
- 针对刷题的分类和建议: 前人的分享,如:
- Leetcode 讨论:
- https://leetcode.com/discuss/post/7454294/happy-new-year-2026-monotonic-stack-topo-3v8m/
- https://leetcode.com/discuss/post/1383740/microsoft-online-assessment-part-ii-till-kuq8/
- https://leetcode.cn/problems/longest-substring-without-repeating-characters/solutions/876061/yi-ge-mo-ban-miao-sha-10dao-zhong-deng-n-sb0x/
- 灵茶山艾府: 滑动窗口与双指针
- C++相关网站:
- https://www.cppreference.com/
- https://google.github.io/styleguide/cppguide.html
- Leetcode 讨论:
13 responses to “算法面试: 数据结构和算法”
mirtazapine 7.5 mg price
mirtazapine 7.5 mg price
diflucan medication
diflucan medication
augmentin antibiotic
augmentin antibiotic
finasteride tablet
finasteride tablet
metoprolol succinate xl
metoprolol succinate xl
ivermectin cream for rosacea
ivermectin cream for rosacea
dexlansoprazole over the counter
dexlansoprazole over the counter
diflucan
diflucan
lasix pill 20 mg
lasix pill 20 mg
sports viagra b
sports viagra b
pancrelipase composition
pancrelipase composition
domperidone otc india
domperidone otc india
udenafil tablets uses
udenafil tablets uses