华为OD|机考365分面经
前两天多多收到了刚过机考的候选人复盘,他机考365.83分,排前22%,已经顺利进入下一轮了。
我把三道真题的考点和解题思路整理出来了,希望对正在准备机考的同学有帮助:
一星题1:循环内存存取计算
考点:环形缓冲区 + 内存对齐 + 区间重叠判断
解题要点:
- 写指针对齐到align的整数倍(注意绕回0)
- 计算写入后的结束位置
- 判断是否覆盖未读区间(read_index ~ write_index)
- 能放下返回新写指针,否则-1
容易踩的坑:
- 对齐后等于capacity要绕回0
- write_index == read_index 时缓冲区为空,可以写入
- 绕回写入时,两段都要检查是否与未读区间重叠
一星题2:美观的灯笼
考点:最长连续非递增子数组 + 一次遍历
解题要点:
- 遍历数组,当前 ≤ 上一个则长度+1,否则重置
- 同时记录最大长度和起始索引
- 返回 [最大长度, 起始索引]
这题比较友好,把握好遍历逻辑就能拿分。
二星题:水站孤立站判定
考点:图论 + 多源BFS + 有向/无向混合图
解题要点:
- 建图:单向加一条边,双向加两条
- 所有源头站入队,BFS标记可达站
- 未被标记的就是孤立站,升序输出
几个提醒:
- 双向管道别忘加反向边
- pipes是二维数组,索引别搞错
- BFS用visited数组避免重复
刷题小建议(候选人的经验)
- 一星题:主攻字符串、数组、模拟、贪心
- 二星题:重点练DP、图论(BFS/DFS/拓扑排序)
多多心里话:
OD机考不要求每道题都满分,会做的稳稳拿分,不会的尽量拿部分分,365分真的可以够到。
大家如果对OD机考有什么疑问,比如题型、难度、分数线、准备方向,都可以在评论区问我。我虽然不是技术出身,但经手的案例不少,能回答的一定帮大家解答。
祝准备机考的同学顺利上岸,期待在OD见到你们💪
#华为##华为OD##华为机考##内推##程序员#