华为OD|365分机考经验
每日一更之365分OD机考上岸经验
背景:上周香云的一个候选人刚出分,总分365.83/400,排前22%
机考题目:
一星题1:循环内存存取(82.5分)
考点:环形缓冲区+内存对齐+重叠判断
候选人原话:
- 写指针对齐到align的整数倍(注意对齐后如果等于capacity,要绕回0)
- 算写入后的结束位置
- 判断会不会覆盖还没读的数据(read_index~write_index那块)
- 能放下就返回新指针,放不下就-1
他踩过的坑:wirte_index==read_index时缓冲区为空,可以随便写。绕回写入的时候要分成两段检查重叠,别漏了。
一星题2:美观的灯笼(100分)
考点:最长连续非递增子数组,一次遍历就够
候选人的做法特别简单:
遍历数组,只要当前灯笼尺寸≤上一个,长度+1;否则重置长度。同时记录最大长度和起始索引,最后返回【最大长度,起始索引】
候选人原话:这题千万别想复杂,直接莽
二星:水站孤立站判定(183.33分)—这道他承认差点翻车
考点:图论+多源BFS+有向无向混合图
正确解法:
- 建图:单向管道加一条边,双向加两条(候选人说双向只加一条等于白给)
- 把所有源头站加入队列,BFS扩散标记能到达的站
- 没被标记的就是孤立站,按升序输出
他犯的错:双向管道忘了加反向边,BFS没用visited数组导致重复,还有pipes是二维数组,索引搞错过一次。
候选人给的刷题建议:
- 一星:多刷字符串、数组、模拟、贪心
- 二星:往死里练动态规划、图论(BFS/DFS/拓扑排序)
最后香云说一句:OD机考不要求你每道题都满分,策略拿分才是王道,能全过的题稳稳拿下,不会的题骗点分,365分真的不难
对OD机考有问题的同学们们评论区直接问,看到就回
#华为##华为od##华为机考##内推##程序员#
查看12道真题和解析
