华为 OD 机试,4 道算法题,两道 100 分 一道 200 分,时间 150 分钟,按通过测试用例比例给分(但是我以为按步骤给分 Orz )
两个从小到大排序的正整数数组 A[] B[],要求输出满足以下条件
例如
A:1 ,2 ,3
B:3 ,5 ,6 ,8
要输出
1 ,3
2 ,5
3 ,6
用了双层 for 循环,但是通过测试用例 90%,本题得分 90
正整数数组 A[],正整数 magicNumber ,要求输出间隔 magicNumber 以内的相同数字的第一个 index ,否则输出 -1
例如
A:3 ,2 ,4 ,3 ,5
当 magicNumber = 3 时输出 0
当 magicNumber = 2 时输出 -1
也是双层循环,但内层我死磕用的 while ,竟然没做出来(太不应该了)。。。鉴于时间不足以及我以为按步骤给分,就直接提交了。本题得分 0
m 个摇摇车,n 个小朋友分别有编号,小朋友玩摇摇车可以用 1233 表示(题目就这么描述的)。小朋友可以排队等着玩,或者直接离开。但是如果离开的时候没玩过就不开心+1. 要求输出不开心的小朋友个数
例如
1 辆摇摇车,3 个小朋友
当数字为 112233 时,不开心为 0
当数字为 121233 时,2 在等待 1 后也玩上了,所以不开心为 0
当数字为 122313 时,由于 2 没等玩上就离开、3 玩上了( 1 已经玩完了)所以不开心为 1
起初创建了几个 Class 写的时候发现没必要,最后用了两个 Set 解决。本题通过,得分 200
最后得分 90+0+200=290 ,没达到 300 推荐分,惜败(当然我菜是原罪,尤其第二题竟然没完成?!)。
继续找工作中。。。
1
liprais 2023-08-16 15:43:55 +08:00
一道也没看懂,华为果然是华为
|
2
magic3584 OP |
3
CutetterssLe 2023-08-16 15:51:09 +08:00
OD 都考算法了,真卷
|
5
victimsss 2023-08-16 15:53:39 +08:00
@CutetterssLe 一直有机试吧
|
6
7911364440 2023-08-16 15:53:40 +08:00
第三题没看明白 有人解释下吗,112233 为啥表示不开心为 0 啊
|
7
magic3584 OP @7911364440 #6
就是 1 辆摇摇车,3 个小朋友都是玩完走了,所以不开心为 0 |
8
zhq566 2023-08-16 15:55:52 +08:00
今年朋友前端找工作都问算法了。
|
9
magic3584 OP @CutetterssLe #3
给了题库大概 100+道,我用 chatGPT 刷了 3 天刷了 1/3 不想刷就直接考了,毕竟 300 分觉得自己做不到。。。 |
10
xiaochun41 2023-08-16 15:57:44 +08:00
看不懂题
|
11
davidoff567 2023-08-16 16:03:19 +08:00
这。。20-25K 的难度?
|
12
victimsss 2023-08-16 16:03:37 +08:00
第三题啥寄吧题目整得这么绕,简单理解就算数字代表编号,第一次出现是来,第二次出现是走。比如 1 2 1 2 ,1 来,2 来,但是 1 还没走,然后 1 走,1 走完之后 2 就可以玩,然后 2 走。
|
13
magic3584 OP @davidoff567 #11
JD 为 15-30K |
14
leewangyang 2023-08-16 16:05:35 +08:00 via iPhone 1
第一题,如果两层循环外层是 A 内层是 B 的,如果 B 的 index 不会重置,而是单调增。可以 O(B),再好一点就是 B 可以用二分查找去找。在 B 远大于 A 的时候,更优。
第二题,直接用个 map 存这个数字上一次出现位置,然后遍历依次加进去,如果出现重复,判断是不是小于距离,是就结束,不是就覆盖。用 hash 的 map ,一遍走完出结果。O(n) 第三题应该是第一个数字表示排队,第二个表示离开吧,按 op 说可以用 set 吧,进 set 和出 set 的时候任意时候 set 里面数量小于车数就是坐上了。 |
15
magic3584 OP @victimsss #12
我专门标注了 “小朋友玩摇摇车可以用 1233 表示(题目就这么描述的)”。看第一遍也不懂,看例子就懂了。 |
16
justfindu 2023-08-16 16:13:01 +08:00
第三题没看懂
|
17
magic3584 OP @leewangyang #14
感谢大佬第二题的新解法 |
18
leewangyang 2023-08-16 16:21:40 +08:00
@magic3584 可能三没说对。一个 set 应该不好解决,应该像你说的用两个 set 。不过大致的想法类似模拟进出操作,然后检查条件
|
19
MuSeCanYang 2023-08-16 16:22:26 +08:00
@magic3584 #13
15K 要求这么高???? |
20
me1onsoda 2023-08-16 16:36:21 +08:00
又不限制复杂度,第二题再申请个数组感觉简单很多
|
21
me1onsoda 2023-08-16 16:37:40 +08:00
122313 我还以为是玩的顺序
|
22
sobev 2023-08-16 16:46:21 +08:00
|
23
sobev 2023-08-16 16:57:18 +08:00
|
24
chendl111 2023-08-16 16:57:37 +08:00 1
这三道题是 leetcode 简单题难度
1.双指针,复杂度 O(n+m) 2.扫一遍记录最短距离,贪心,复杂度 O(n) 3.用 stack 记录出栈时的大小,复杂度 O(n) |
26
xuelulu 2023-08-16 17:01:52 +08:00
刚做,320 ,结果挂在性格测试,被测出来太 emo/忧郁
|
27
fridaycatye 2023-08-16 17:17:09 +08:00
@xuelulu #26 不去也罢
|
29
nyxsonsleep 2023-08-16 17:50:18 +08:00
OD 的 JD 薪资可以无视,纯看后面技术面试和你的工作时间计算综合定级。
目标院校 150+,非目标院校 350+。考题分数纯看通过题目数量,这个应该是常识吧,你的联络人没告诉你吗? 至于题目和什么步骤,估计都没人看那些东西,每个人都很忙,尤其技术部门的,这个不算绩效和时长,谁会去看呢。 |
30
luvxy 2023-08-16 17:50:49 +08:00
@fridaycatye 怕你受不了他们的狼性文化是吧,哈哈
|
32
iOCZ 2023-08-16 17:59:42 +08:00
第一题应该记录两个下标就行了吧
|
33
nyxsonsleep 2023-08-16 18:00:44 +08:00
至于题目难度,这个是纯随机的,我看你这几题都偏简单的样子,虽然描述比较绕,但也不清楚是不是你回忆有问题还是示例不完整。。
|
34
polobug 2023-08-18 09:22:51 +08:00
华为 jd 公积金按照多少交?比例多少哦
|
36
acvvkhalil 2023-08-25 22:37:39 +08:00
无所谓的,我机考满分性格测试挂了
|