华为OD手撕代码全攻略:机考高频题型与备战技巧

发布时间:2026/10/6 4:28:43
华为OD手撕代码全攻略:机考高频题型与备战技巧 华为OD面试的手撕代码最近两年问的人明显多了。一方面是因为OD招人规模确实大机考环节淘汰率又高另一方面是网上各种“真题目录”“高频题清单”满天飞但质量参差不齐很多就是随手贴几个LeetCode题号连考试系统和判题模式都没讲清楚。这篇文章我结合自己准备华为OD机考的经验以及身边同事、朋友实际面试反馈回来的情况把2026年这个时间节点上手撕代码最值得关注的环节、题型和坑一次性说透。先说清楚一件事华为OD面试和普通社招的最大区别在于它有严格的机考筛选。机考成绩直接决定你能不能进入后面的技术面而且技术面现场还会再来一轮手撕代码。所以你面对的其实是两轮“手撕”一轮是线上系统判题一轮是面试官盯着你看你写。这两轮考察的侧重点不太一样但底层要求是共通的代码基本功扎实常见算法题能快速AC边界条件考虑周全代码风格干净。这篇文章适合谁看准备投华为OD的Java/C/Python开发尤其是目标定在D1-D3职级的朋友手里有开发经验但很久没刷题、对机考系统不熟的转岗选手以及那些刷了不少LeetCode但不知道华为OD到底考什么、用什么模式考的人。内容我尽量按“先搞懂游戏规则再按规则刷题”的思路来组织不搞虚的。1. 华为OD面试流程里手撕代码到底出现在哪几个环节1.1 机考环节决定你能不能进面试的第一道门槛华为OD的机考一般安排在投递简历之后、技术面试之前。你通过简历筛选HR会给你发一个考试链接约定时间远程完成。机考通常包含2到3道编程题总分一般分布在100到400分之间具体分值构成每个批次会略有调整但整体趋势是至少有一道简单题基础语法和逻辑、一道中档题常见数据结构和算法、偶尔有一道偏难的题目动态规划或复杂模拟。这里有个容易忽略的点机考不是考得越多越好而是看总分和通过线。不同部门、不同地区的OD岗位机考分数线不一样有的部门120分就行有的部门要200分以上。所以不要因为某一道题卡住了就心态崩掉先把能拿的分全部拿稳比死磕难题性价比高得多。另外机考环境这些年一直在变。2024年以后逐渐普及的是“双机位”模式电脑摄像头监控你的屏幕和面部手机摄像头放在侧面监控你的操作环境。考试系统支持的语言一般是Java、C、Python、JavaScript这几类但要注意不同批次开放的语言可能不同提前跟HR确认好。判题模式也有两种一种是ACM模式你需要自己处理标准输入的读取和结果的输出另一种是核心代码模式你只需要实现题目要求的函数或类方法输入输出由系统帮你搞定。这两种模式都要提前适应尤其是ACM模式很多只刷LeetCode的选手第一次见会懵。1.2 技术面试环节面试官现场“看你写代码”机考通过后接下来是两轮左右的技术面试面试官通常是目标部门的资深开发或技术主管。技术面里几乎必有一轮现场手撕代码。这个环节没有在线判题系统一般是面试官把题目发在聊天窗口或者直接口头描述让你在本地IDE里写写完后面试官会看你的思路、代码结构甚至让你跑几个测试用例验证一下。现场手撕和机考最大的区别在于机考你一个人闷头写错了系统告诉你现场手撕是“边想边说”面试官在意的是你的思考过程。比如看到一道题你首先想到什么方案时间复杂度和空间复杂度是多少有没有更优解边界条件怎么处理这些都要说出来。最怕的是拿到题就开始闷头敲键盘敲了半天也不说话写出来的代码还有明显Bug——这种情况基本就凉了。还有一点需要提醒现场手撕的题目难度一般不高于机考中档题但考察点更灵活。除了算法题有时候面试官会给你一段现有代码让你review、找Bug、补全逻辑甚至让你写一个符合某个业务场景的小工具类。这不是单纯的刷题能覆盖的需要你在准备阶段就有意识地锻炼“看代码”和“改代码”的能力。1.3 主管面和综合面手撕代码可能换个形式出现到了主管面手撕代码的比例会降低但不是没有。有些主管喜欢在聊天中突然抛一个场景题让你快速给出技术方案比如“有10万个请求要限流你怎么设计”或者“这个接口响应慢你怎么排查”。这种题目不要求你写完整代码但会观察你的技术视野和解决问题的思路。严格说这不算手撕代码但它的底层要求是一样的对数据结构、算法复杂度、系统设计的基本功是否扎实。所以我的建议是准备华为OD面试不要只盯着机考题库要把“手撕代码”这件事理解成一个完整的能力栈——机考验证的是刷题量技术面验证的是思考过程主管面验证的是工程判断力。这三层可以当成一个整体来准备。2. 2026年华为OD手撕代码高频题型与真题考点拆解2.1 直接从社区和面经里扒出来的高频考点分布先看一张我整理的考点分布表。这不是什么内部资料是我把牛客、脉脉、CSDN、知乎上2023到2025年华为OD机考和面经里提到的高频考点汇总出来的覆盖了绝大多数我能找到的帖子结合我自己的考试经验修正过几轮。应对2026年机考这个大方向不会有太大变化考点类别具体题型出现频率建议优先级数组与字符串双指针、滑动窗口、字符串匹配极高必刷栈与队列括号匹配、单调栈、循环队列高必刷哈希表两数之和、字母异位词分组、LRU高必刷链表反转链表、合并有序链表、环检测中高必刷排序与二分快排变种、二分查找边界问题中高必刷动态规划背包问题、最长递增子序列、编辑距离中重点突破DFS/BFS岛屿问题、迷宫最短路径、排列组合中重点突破贪心算法区间问题、跳跃游戏中掌握套路树二叉树遍历、最近公共祖先、层序遍历中掌握套路并查集连通分量、朋友圈问题低学有余力再看这个分布和LeetCode上的企业题库高度重合所以“刷华为OD高频题”和“刷力扣Hot 100”在多数情况下是同一件事。区别在于华为OD的题目描述更喜欢包装成业务场景比如“停车场车辆计数”“物流配送路径”之类但剥掉壳子核心还是那些经典算法模型。2.2 拿到一道题先识别考点再动手很多人在手撕代码时最大的问题是拿到题不知道它想考什么于是瞎试。我总结了一个快速识别考点的口诀看到“连续子数组”“区间”“窗口”这些词大概率是滑动窗口或双指针看到“最短”“最少”“能否到达”先想BFS或贪心看到“方案数”“最大收益”“最长公共”这类问题基本跑不掉动态规划看到“连通”“分组”“成对出现”要么并查集要么图遍历。举个例子。面试题说“有一排车位0代表空位1代表已占用现在一辆车要停进来要求距离最近的车位距离最大问停在哪里。”第一反应可能是暴力枚举但其实这是滑动窗口和双指针的变体你只需要找到一段最长的连续0区间把车停在区间中点即可。一旦想到这一步代码复杂度立刻降下来。我再给一个更常见的“给定一个字符串找出最长无重复字符的子串长度。”这题在LeetCode上是第3题华为OD机考也出现过类似版本。它的核心思路就是滑动窗口加哈希表窗口右端不断扩展窗口左端在遇到重复字符时向右移动。关键点有两个一是用于记录字符位置的数组/Map要存“字符最近一次出现的下标”二是更新左边界时要和当前左边界取最大值避免回溯。这个细节能写对代码基本就稳了。2.3 三道典型真题的实战拆解附可运行代码下面我选三道不同类型、在面经里反复出现的题目完整走一遍从读题到AC的过程。代码用Java写因为Java是目前华为OD机考里使用率最高的语言之一而且我本人平时工作也主要用Java。第一道字符串压缩类。题目大意是给出一个字符串如果某个字符连续出现可以用“字符出现次数”的方式压缩比如aaabbbc压缩成a3b3c1。要求在压缩后长度更短的时候输出压缩串否则输出原串。这题考的是模拟和边界控制难点不在算法在于最后一组字符别漏掉。public String compressString(String S) { if (S null || S.length() 2) { return S; } StringBuilder sb new StringBuilder(); int count 1; for (int i 1; i S.length(); i) { if (S.charAt(i) S.charAt(i - 1)) { count; } else { sb.append(S.charAt(i - 1)).append(count); count 1; } } sb.append(S.charAt(S.length() - 1)).append(count); return sb.length() S.length() ? sb.toString() : S; }这里最容易犯的错有两个一是在循环里写成对“下一字符”的判断导致最后一个字符处理不到二是忘了题目要求“压缩后更短才输出压缩结果”直接把所有情况都输出压缩串。面试时先把这些边界条件列出来再动手写会加分不少。第二道双指针类。“给定一个升序排列的数组和一个目标值找出数组中两个数的和等于目标值返回它们的下标。”这题考的就是双指针的经典写法左指针指向头部右指针指向尾部两数之和太小就左指针右移太大就右指针左移。public int[] twoSum(int[] numbers, int target) { int left 0, right numbers.length - 1; while (left right) { int sum numbers[left] numbers[right]; if (sum target) { return new int[]{left, right}; } else if (sum target) { left; } else { right--; } } return new int[]{-1, -1}; }很多人看到“两数之和”第一反应是哈希表确实LeetCode第1题用哈希表但注意这里的数组是“升序排列”双指针能把空间复杂度降到O(1)。这就是华为OD面试和纯刷题的区别它不仅看你会不会背题还看你能不能根据题目条件选择更合适的方案。如果面试时能主动说一句“因为数组已排序我可以用双指针做到O(1)空间”哪怕代码不完美面试官对你的印象也会好很多。第三道动态规划入门级。“你是一个小偷沿街有一排房子每间房子有现金但不能同时偷相邻的两间问最多能偷多少钱。”这题就是经典的打家劫舍转移方程是dp[i] max(dp[i-1], dp[i-2] nums[i])。public int rob(int[] nums) { int n nums.length; if (n 0) return 0; if (n 1) return nums[0]; int[] dp new int[n]; dp[0] nums[0]; dp[1] Math.max(nums[0], nums[1]); for (int i 2; i n; i) { dp[i] Math.max(dp[i - 1], dp[i - 2] nums[i]); } return dp[n - 1]; }动态规划题在华为OD机考里是分水岭。简单题大部分人都能AC中档题里DP题能把一批人卡在通过线以下。上面这题是DP里最基础的一类一定要做到不看题解直接写。它的变体很多比如环形打家劫舍、打家劫舍III树形DP如果时间充裕建议把这三层都过一遍。3. 机考系统模式解析ACM模式与核心代码模式怎么切换3.1 两种判题模式的区别以及为什么有人会在这里翻车华为OD机考现在比较常见的有两种代码提交模式。第一种是ACM模式流程是你自己写一个完整的程序通过System.in或标准输入读取测试数据然后用System.out把结果打印到标准输出在线判题系统拿你的输出和标准答案比对。第二种是核心代码模式也就是大家熟悉的LeetCode模式系统会预定义好类和方法签名你只需要实现方法体内的逻辑返回值代表结果。翻车案例我见过不少。有一个朋友LeetCode刷了300多题觉得机考稳了结果一上考场发现是ACM模式连“怎么读取一整行字符串”都要想半天。还有人反过来平时做ACM题做习惯了结果遇到核心代码模式非要自己写一个Scanner去读输入结果方法外多了代码编译都过不了。所以准备机考的第一步不是刷题是先确认你报的这一批次考试用的是什么模式。有个小技巧不管考试通知里有没有写明模式你都可以提前在牛客网的“华为OD机试专区”或类似平台做几次模拟考试这些平台基本还原了真实判题环境。做模拟题的时候注意看题目描述里有没有明确给出输入输出格式只要给了输入输出的基本就是ACM模式。核心代码模式的题目描述通常是“实现xxx函数”或“补全代码”不需要你处理输入输出。3.2 ACM模式下最容易踩的三个坑第一个坑是输入格式。题目说“第一行输入一个整数n第二行输入n个整数”有人直接在循环里nextInt()取数但没有处理换行符导致读入错位。这个问题的根源是对Scanner和BufferReader的区别不敏感。判题系统里数据量大的时候Scanner性能明显不如BufferReader如果你用Java刷ACM模式强烈建议用BufferReader和StringTokenizer组合来读数据避免超时。第二个坑是输出格式。题目要求“每个结果占一行”有人把所有结果拼成一个字符串一次性打印结果对了但格式错了系统直接判0分。还有一种情况是要求输出浮点数且保留两位小数有人直接用System.out.println(score)小数点后位数不对。值得注意的是华为OD机考经常出现数值比较类题目建议输出时统一用System.out.printf(%.2f, value)这类格式化输出。第三个坑是死循环。在ACM模式下你需要自己控制读取的终止条件最常见的写法是while (scanner.hasNext())或while ((line reader.readLine()) ! null)。有些平台允许多个测试用例每跑完一个用例就要继续读下一个直到没有输入为止。如果你把读取逻辑写在循环外面就只能跑出第一个用例的结果第二个用例直接空指针或数组越界。3.3 核心代码模式下别忘了系统给你的方法签名核心代码模式看起来很友好但它有一个隐蔽的坑系统已经规定了方法签名你不能随意修改。比如题目要求实现public int maxArea(int[] height)你非要把参数写成ArrayList或者加一个额外参数编译直接失败。还有的题目要求你返回数组但实际推到测试的时候系统会用数组的深拷贝去判断内容一致性如果你返回的是数组引用而不是内容拷贝某些语言里会出现诡异的结果。我对Java选手的建议是核心代码模式里拿到题目先看方法签名里的每个参数和返回类型然后在脑子里过一遍“如果我只有这些参数能不能完成题目要求”。如果不能说明你理解错了题意通常不是让你改签名而是让你换一种思路。比如题目给的是链表头节点ListNode但你想用数组下标访问那就得先自己把链表遍历一遍转成数组而不是想着去改签名。4. 2026年刷题路线与时间规划从零基础到机考通过4.1 先定目标不同通过线的刷题量差别很大华为OD机考没有统一的“多少分稳过”但根据我所在部门和周边部门的观察大多数OD岗位的机考通过线集中在100到200分之间核心研发岗或热门部门可能更高。把目标定在“稳过200分”是比较理性的两道题各拿100分或者一道简单题加一道中档题正好卡线。对应到刷题量上我给出一个参考如果你有三年左右开发经验但平时不怎么刷题LeetCode刷到150到200题把Hot 100吃透机考中档题基本能应付。如果经验少一点或者编程基础比较薄弱建议把刷题量提到250题以上多出来的部分主要刷字符串模拟、数组操作和栈队列应用这三类它们是机考简单题和送分题的主要来源。这里特别说一下刷题不是刷完一遍就完事的。我见过不少人是把LeetCode当作“看题解”的娱乐活动每天打开题解划一划眼睛会了手不会。真正的刷题应该是先自己尝试15到20分钟没有思路再看题解看懂题解后必须关掉题解重新自己写一遍第二天再不看答案复现一遍隔一周再复现一遍。这三遍下来一道题才算真正是你的。4.2 四周机考冲刺计划每天约两小时很多人是收到机考通知才开始准备时间一般在7到15天到一个月不等。不同的时间窗口策略应该完全不同。如果只有一周就不要再碰难题了把数组、字符串、哈希表、双指针、栈这五类的“简单题”全部过一遍保证每分钟都能稳定AC一道然后吃透20道中档题。如果有一个月可以按下面这个四周计划来走这个计划我非常推荐因为它覆盖了机考的高频考点而且不会让你陷入“不知道刷什么”的焦虑里第一周主攻数组、字符串、哈希表。每天6到8题优先做LeetCode Hot 100中标注为“简单”和“中等”的题。写代码时要求一小时内完成超时就先看题解不要硬耗。周末抽半天做一次模拟机考用牛客或类似平台必须在限时内提交完所有题。第二周主攻双指针、滑动窗口、栈、队列、链表。这周开始题目难度会比第一周高一些同样每天6到8题。写代码时开始关注复杂度分析每写完一道题尝试说出你的时间复杂度和空间复杂度这在后面技术面非常有用。第三周主攻二叉树、DFS、BFS、二分查找、贪心。前两周如果坚持下来了到这周你会发现自己看题的速度快了很多。这周开始每天可以加入1到2道动态规划题不用为难的先把最长连续序列、爬楼梯、打家劫舍这类入门DP弄清楚。第四周每天上午做一套完整模拟机考2到3题下午复盘和查漏补缺。这一周的重点不再是“新题”而是“熟练度”。你会发现有些题第一周做过现在做起来还是生疏那就针对性地把这类题再过一遍。同时把之前的错题本翻出来看一遍避免同样的坑在考场上再踩一次。4.3 Java机考选手的语言特性和常用API如果你用Java机考有几个API和工具类是高频使用且必须熟练的StringBuilder做字符串拼接和反转HashMap/HashSet做去重和计数Deque做栈和双向队列Arrays.sort()处理数组排序Collections.reverse()处理列表反转PriorityQueue做堆排序。这些API写熟了很多题能省下大量时间。另外Java选手要特别注意Comparable和Comparator的用法因为很多排序题的考点在于“自定义排序规则”。举个例子机考经常出现“按出现次数降序排序次数相同按字母自然序升序”这类要求这就是在考察你是否会用Comparator。核心代码模式还好ACM模式下很多人栽在这里Comparator写错了子序列顺序不对整道题全错。还有一点机考对Java版本一般没有特别严格的限制但你写的代码不能依赖太新的特性比如Java 17的switch表达式在旧判题系统里可能编译不过。稳妥起见尽量避免使用过于花哨的新语法用你平时写业务代码最熟悉的写法就行。5. 现场面试手撕代码的实战技巧怎么“表演”给面试官看5.1 面试手撕代码的六个标准动作现场手撕代码本质上是一场“技术面试官给你出题你边思考边写同时要让他看懂你的思路”的即兴表演。我总结了六个标准动作按顺序做基本不会出大错。第一拿到题先复述一遍。面试官说完题目你用一两句话把题目的输入、输出、约束条件复述出来。这既确认了你没有理解偏差也让面试官觉得你是一个善于确认需求的人这在团队协作里是非常加分的品质。第二明确边界条件。比如数组是否为空、字符串是否可能含空格、数值是否有范围限制这些都要开口问。很多题目本身没有把边界条件写清楚面试官就是在等你去问。你能主动问出两三个关键边界面试官还没看你代码就已经给了一半分。第三先说暴力解法再优化。最好一开始就明确说“我先想到的是暴力解法时间复杂度是O(n²)但可以优化到O(n)”。这种表达传递了一个重要信号你不仅会写代码还知道好代码的标准是什么。哪怕你最后只写出暴力解也比你闷头写半天写个O(n²)然后说“只能这样”强得多。第四写代码前先在注释里写步骤。这个技巧特别适合现场手撕。你可以在代码前先用中文注释写上3到5行关键步骤比如“1. 先排序2. 用两个指针从两头向中间遍历3. 和为target时记录答案”。这样做的好处是即使你中途思路飘了看注释也能拉回来而面试官会觉得你结构感很好。第五写完后自己提测试用例。写完全部代码主动说“我来验证一下用这个例子跑一遍”然后模拟执行过程一步一步把变量标注出来。这一步非常关键因为它能让面试官看到你有调试意识而不是写完就扔。第六提一下进一步优化方向。代码通过了你别急着说“写完了”而是补一句“在数据量特别大的时候这个解法还有优化空间可以用xx方案减少空间复杂度”。面试官绝大多数情况下不会让你真的改但你说这句话说明你对质量有追求。5.2 一道题卡住了怎么办千万别沉默现场手撕最怕的场面就是面试官出了题你看了两分钟没思路空气突然安静。这种情况我见的太多了老实说沉默超过30秒面试官的印象就会开始扣分。解法是宁可说“我现在没有直接思路但我先说说我想到的几个方向”也不要闷着。你可以说这类话“如果是数据量很小我可以直接用暴力解法遍历所有组合。但显然面试官你出这题应该有更优解我还在想到底是双指针还是动态规划。”哪怕你没有真能想出最优解你已经向面试官展示了你的元认知能力——你知道自己卡在哪里也知道有哪些可能的解题方向。这比闷声不响好一百倍。还有一种情况是思路想到了但代码写到一半发现不严谨或者某个语法忘了。比如你写HashMap的时候忘了怎么遍历可以直接说“我来Java写这个数据结构不算特别常用让我想一下”然后稳定地写出一版正确的。面试官看重的是你处理问题的过程不是看你表演默写API。5.3 面试手撕的题目从哪来怎么提前预判从面经统计来看华为OD技术面手撕题目有三类高频来源。第一类是机考题的变体比如机考你做了“找出数组中出现次数最多的数”面试官可能会改成“找出出现次数最多的第K个数”。第二类是LeetCode热门题原题集中在Hot 100前50题。第三类和面试官所在业务强相关比如做通信设备的部门会出一些类似“写入缓冲区满了怎么办”的队列题做Java后端的部门喜欢出“设计一个线程安全的LRU”这类题。没办法精确预判面试官到底出哪一道但你可以做两件事提高命中率一是把LeetCode Hot 100按“面试高频”列表过一遍这个过程本身已经覆盖了大多数手撕题二是提前和你对接的HR或考务人员咨询了解目标部门的技术栈通常Java岗手撕偏数据结构和并发C岗偏内存指针和STL前端岗偏JavaScript异步和场景设计。6. 常见问题速查表与避坑清单过来人踩过的坑都在这问题表现原因解决办法机考提交但超时代码逻辑正确但判题TLE用了O(n²)暴力解法或Java输入用了Scanner优化时间复杂度改用BufferReader快速输入核心代码模式编译失败提示“方法签名不匹配”改了系统给定的方法签名或类名严格保持方法签名不变只写方法体内部逻辑输出格式不一致本地测试正确提交判0分多打了空格、换行符或缺少换行仔细读输出格式要求逐字符对比现场手撕没思路拿到题沉默两分钟没动作缺少“先说思路”的意识直接说“我先分析题目的考点”硬逼自己开口手写代码Bug多写完有明显边界问题没先在纸上列测试用例写完代码主动跑一个简单用例验证对复杂度说不清面试官问“你解法的复杂度是多少”答不上来平时刷题不关注复杂度每道题写完都自问时间复杂度和空间复杂度面试官觉得代码风格差变量名全是a、b、c方法几百行平时没养成良好编码习惯刷题时就按工程标准要求自己变量名写清语义慌了忘记集合API遍历Map半天写不出来基本功不扎实考前专门过一遍常用集合类API除了表格里的这些还有几个经验层面的坑值得单独说。第一个是关于“背题”的坑。现在网上流传很多“华为OD真题题库”质量参差不齐。我的建议是你可以拿它们来熟悉题型风格但不要死记背代码。华为OD机考近两年题目重复率明显下降而且同一道题目可能被改参数、改背景死背代码在考场上一旦遇到变体反而更容易慌。第二个是关于“只刷题不模拟”的坑。我见过一个小伙伴LeetCode刷了200多题信心满满去考试结果当天登录系统、开摄像头、调试本地IDE花掉了15分钟第一道题还没进入状态时间就过去一半了。所以考前至少做两次完整的模拟机考把登录、读题、写代码、提交的整个流程走通。第三个是关于“面试时太沉默”的坑。技术面试手撕代码最怕的就是遇到一个安静如鸡的候选人。尤其现在是远程面试居多视频那头你要是半天不说话面试官真的很为难。哪怕你说“这道题我暂时没有最优思路我先写个暴力版本”面试官还能顺着你的思路给你引导。你一沉默他想引导都不知道从哪里开口。第四个是关于“不检查直接提交”的坑。我自己机考时就吃过这个亏核心代码模式方法签名是List 返回值我用int[]本地跑通了提交时编译失败但我当时不知道时间就白白浪费在一遍遍提交上。后来复盘才意识到核心代码模式里一定先看方法的返回类型。大家在模拟考的时候一定要养成“提交前花10秒检查签名和返回类型”的习惯。7. 我从准备到入职OD后复盘出的几点心得最后说点个人化的东西可能比前面的方法更实用。我在准备华为OD的时候心态上走过一个弯路总觉得“手撕代码”就是纯粹的刷题只要把算法题刷够面试稳了。后来真正进了OD和几个做过面试官的同事聊完才意识到手撕代码的本质是“技术沟通能力的最低配验证”。面试官要确认的不只是你会不会这道题而是你遇到一个没见过的问题时能不能理性拆解、清晰表达、动手验证。这三项能力放到日常开发里比单纯会背模板重要得多。所以在做题之外我有几个小习惯想安利给大家。平时看题的时候不直接看题解先在纸上画一画输入输出的例子把题目的意思用数据流的方式理一遍。写完代码后不着急跑通先自己在代码里走一遍边界样例甚至故意构造一个极端输入看看会不会崩。多去GitHub或技术社区看看别人对同一道题的不同解法和讨论尤其关注评论区里那些“为什么这个写法会错”的帖子那里面藏着的才是真正的经验。还有一个小技巧找一个人陪你模拟面试。两个人轮流当面试官你讲思路、写代码、复盘只需要三次左右你就能明显感受到自己在“边说边写”这件事上的进步。华为OD本来就是面试流程比较标准化的岗位如果能在正式面试前把整个流程模拟一遍那些紧张、卡壳、冷场的问题至少能消除一半。这篇内容本来只是想整理一下题库目录结果写了这么长主要是因为手撕代码这件事题库只是一个很小的入口背后的系统和心态建设才是大头。希望这些内容能帮你少踩几个坑。祝机考顺利也祝后面每一轮都过。