华为OD机考备考经验贴-非科班转行版
一、前期算法学习规划
(一)基础阶段:代码随想录系统学习
算法入门推荐优先使用 代码随想录 平台(网址:https://www.programmercarl.com/),这是一个免费学习资源,仅需关注微信公众号 “代码随想录” 获取验证码,即可解锁全部内容。该平台专为机试和面试设计,按 “数组→链表→哈希表→字符串→栈与队列→树→回溯→贪心→动态规划→图论→高级数据结构” 的科学顺序分类题型,每个专题都配有理论基础篇和总结篇,还提供免费视频讲解(难点重点直观拆解),且题解覆盖 C++、Java、Python 等多语言,适配不同学习者的需求。
学习时需遵循 “先独立思考,后参考题解” 的原则:每题先直接跳转力扣原题尝试解题,若无思路再返回平台查看讲解;即便自行做对,也务必结合题解复盘 —— 部分题目是特定解题思路的典型示例,核心目标是掌握底层逻辑而非机械刷题或背代码,唯有吃透思路才能应对灵活多变的考题。建议同步整理精简笔记,重点记录各类题型的核心思想、解题模板(如双指针技巧、动态规划状态转移逻辑等),方便考前快速回顾。
(二)强化阶段:力扣热题 100 检验提升
完成代码随想录的系统学习后,算法功底已基本成型,此时可通过 力扣热题 100(链接:*********************************************)检验学习成果。该题库精选了刷题者最关注的高频面试题,其中大量题目与代码随想录的经典题型重合,能有效巩固已学知识。
刷题时建议做完每题后拓展阅读题解,学习多元解题思路。个人特别推荐 “灵茶山艾府” 的题解,其内容详尽且有一定深度,能帮助拓宽解题视野,避免陷入单一思路的局限。
(三)冲刺阶段:真题演练与模拟适应
刷完热题 100 后,需预留约一周时间专攻真题。真题更贴近实际面试场景,题目描述往往较长,需耐心精读,准确把握输入输出边界条件与核心需求。此外,真题常采用 ACM 模式,需自行处理输入输出逻辑,这一点需重点适应。遇到不会的题目,仍以记录思路为主,避免死记硬背代码。
考前两三天可进行模拟考训练:随机抽取 3 道不同题型的题目,严格限时完成,核心目的是适应考试节奏、缓解紧张情绪,确保正式考试时能正常发挥。
二、机考应试技巧
- 考前准备:机考开始前务必逐项检查设备状态,包括摄像头是否正常、网络是否稳定、手机是否调至静音且放置在指定位置,避免因硬件问题影响考试。
- 心态与读题:考试时保持平和心态,切勿因紧张遗漏关键信息。面对冗长复杂的题目,逐句梳理核心需求,明确输入输出格式、数据范围及限制条件,必要时可简单标注关键点。
- 熟题处理:若遇到做过的题目,建议适当优化代码细节,比如添加清晰注释、更换变量名、调整逻辑语句顺序,避免因代码重复率过高影响成绩。
- 解题策略:遇到有思路的题目,先判断题型(如 DFS、二分查找、哈希表、滑动窗口等),按对应题型的解题框架逐步分析,若暴力解法能快速通过部分用例,可优先实现(节省时间),后续有余力再优化至最优解;若某题卡壳超过 15 分钟,果断跳过,先完成其他有把握的题目,避免因死磕单题导致整体失分。
- 不会题应对:对于完全无思路的题目,可采用 “面向结果编程” 的技巧 —— 先处理题干明确的边界条件(如空字符串、空数组、极端值等)和示例输入,直接返回对应结果(这类用例通常占一定分值);再尝试编写能处理部分常规场景的简单逻辑,尽可能提高用例通过率。
三、技术面试准备
(一)手撕代码环节
面试前无需重新刷大量新题,重点复习力扣热题 100 的核心思路(费时的过程模拟类题目一般不考),同时多浏览面试经验贴,关注高频考点 —— 二分查找、哈希表、双指针、滑动窗口、字符串处理等输入输出简单、逻辑清晰的题型,面试出现概率较高。
撕过程中保持良好心态,不必过度紧张:态度诚恳,主动与面试官沟通解题思路(如 “我打算用 XX 方法解决,因为题目满足 XX 条件”),遇到卡壳可礼貌请教面试官提示;若确实不会,可申请更换题目,多数面试官会尊重合理请求,良好的沟通态度往往比完美解题更易加分。
(二)项目与八股文环节
- 项目准备:提前吃透简历中提及的所有项目,包括技术选型、核心实现逻辑、遇到的问题及解决方案等。面试官通常会围绕项目中感兴趣的技术点提问,如实回答即可,若遇到不会的细节,保持谦逊态度说明,避免编造信息。
- 八股文复习:面试可能涉及 408 核心知识(数据结构、计算机组成原理、操作系统、计算机网络),但更多是高频基础问题,涵盖编程语言基础、数据库基础、Linux 基础等。复习时优先攻克高频考点,若被问到不会的问题,坦诚说明 “这块知识印象不深,后续会重点补充学习”,虚心的态度更易获得面试官理解,一般不会过度为难。
