我抽到的华为 OD 机试算法不难,但是没过,可惜了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rrubick
V2EX    职场话题

我抽到的华为 OD 机试算法不难,但是没过,可惜了

  •  
  •   rrubick 2023-08-16 15:39:50 +08:00 4726 次点击
    这是一个创建于 787 天前的主题,其中的信息可能已经有所发展或是发生改变。

    华为 OD 机试,4 道算法题,两道 100 分 一道 200 分,时间 150 分钟,按通过测试用例比例给分(但是我以为按步骤给分 Orz )

    第一题:

    两个从小到大排序的正整数数组 A[] B[],要求输出满足以下条件

    1. A[i] <= B[j]
    2. 只输出满足条件最近的 B[j]
    3. 按照 A 的顺序输出

    例如

    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 推荐分,惜败(当然我菜是原罪,尤其第二题竟然没完成?!)。

    继续找工作中。。。

    36 条回复    2023-08-25 22:37:39 +08:00
    F281M6Dh8DXpD1g2
        1
    F281M6Dh8DXpD1g2  
       2023-08-16 15:43:55 +08:00
    一道也没看懂,华为果然是华为
    rrubick
        2
    rrubick  
    OP
       2023-08-16 15:46:46 +08:00
    @liprais #1
    没看懂是我描述不清楚了,抱歉。毕竟是按印象大概复述的。
    真题的话就第三题 “小朋友玩摇摇车可以用 1233 表示”这块我想了一会,但是看到例子就清楚了。
    CutetterssLe
        3
    CutetterssLe  
       2023-08-16 15:51:09 +08:00
    OD 都考算法了,真卷
    F281M6Dh8DXpD1g2
        4
    F281M6Dh8DXpD1g2  
       2023-08-16 15:51:12 +08:00   1
    @magic3584 华为嘛,以前还问我不想面试他们的职位是不是对华为有偏见,他们就这德性,简单的事情复杂化还自以为是
    victimsss
        5
    victimsss  
       2023-08-16 15:53:39 +08:00
    @CutetterssLe 一直有机试吧
    7911364440
        6
    7911364440  
       2023-08-16 15:53:40 +08:00
    第三题没看明白 有人解释下吗,112233 为啥表示不开心为 0 啊
    rrubick
        7
    rrubick  
    OP
       2023-08-16 15:54:46 +08:00
    @7911364440 #6
    就是 1 辆摇摇车,3 个小朋友都是玩完走了,所以不开心为 0
    zhq566
        8
    zhq566  
       2023-08-16 15:55:52 +08:00
    今年朋友前端找工作都问算法了。
    rrubick
        9
    rrubick  
    OP
       2023-08-16 15:55:58 +08:00
    @CutetterssLe #3
    给了题库大概 100+道,我用 chatGPT 刷了 3 天刷了 1/3 不想刷就直接考了,毕竟 300 分觉得自己做不到。。。
    xiaochun41
        10
    xiaochun41  
       2023-08-16 15:57:44 +08:00
    看不懂题
    davidoff567
        11
    davidoff567  
       2023-08-16 16:03:19 +08:00
    这。。20-25K 的难度?
    victimsss
        12
    victimsss  
       2023-08-16 16:03:37 +08:00
    第三题啥寄吧题目整得这么绕,简单理解就算数字代表编号,第一次出现是来,第二次出现是走。比如 1 2 1 2 ,1 来,2 来,但是 1 还没走,然后 1 走,1 走完之后 2 就可以玩,然后 2 走。
    rrubick
        13
    rrubick  
    OP
       2023-08-16 16:04:41 +08:00
    @davidoff567 #11
    JD 为 15-30K
    leewangyang
        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 里面数量小于车数就是坐上了。
    rrubick
        15
    rrubick  
    OP
       2023-08-16 16:06:24 +08:00
    @victimsss #12
    我专门标注了 “小朋友玩摇摇车可以用 1233 表示(题目就这么描述的)”。看第一遍也不懂,看例子就懂了。
    justfindu
        16
    justfindu  
       2023-08-16 16:13:01 +08:00
    第三题没看懂
    rrubick
        17
    rrubick  
    OP
       2023-08-16 16:13:53 +08:00 via iPhone
    @leewangyang #14
    感谢大佬第二题的新解法
    leewangyang
        18
    leewangyang  
       2023-08-16 16:21:40 +08:00
    @magic3584 可能三没说对。一个 set 应该不好解决,应该像你说的用两个 set 。不过大致的想法类似模拟进出操作,然后检查条件
    MuSeCanYang
        19
    MuSeCanYang  
       2023-08-16 16:22:26 +08:00
    @magic3584 #13
    15K 要求这么高????
    me1onsoda
        20
    me1onsoda  
       2023-08-16 16:36:21 +08:00
    又不限制复杂度,第二题再申请个数组感觉简单很多
    me1onsoda
        21
    me1onsoda  
       2023-08-16 16:37:40 +08:00
    122313 我还以为是玩的顺序
    sobev
        22
    sobev  
       2023-08-16 16:46:21 +08:00
    第一题是这个意思吗
    ![]( )
    sobev
        23
    sobev  
       2023-08-16 16:57:18 +08:00
    ![]( )
    chendl111
        24
    chendl111  
       2023-08-16 16:57:37 +08:00   1
    这三道题是 leetcode 简单题难度
    1.双指针,复杂度 O(n+m)
    2.扫一遍记录最短距离,贪心,复杂度 O(n)
    3.用 stack 记录出栈时的大小,复杂度 O(n)
    chendl111
        25
    chendl111  
       2023-08-16 16:59:59 +08:00
    @chendl111 第三题应该是 queue+打标记判断下就行了
    xuelulu
        26
    xuelulu  
       2023-08-16 17:01:52 +08:00
    刚做,320 ,结果挂在性格测试,被测出来太 emo/忧郁
    fridaycatye
        27
    fridaycatye  
       2023-08-16 17:17:09 +08:00
    @xuelulu #26 不去也罢
    tsp1970
        28
    tsp1970  
       2023-08-16 17:37:35 +08:00
    @xuelulu 啊这 忧郁可以测出来的哇
    nyxsonsleep
        29
    nyxsonsleep  
       2023-08-16 17:50:18 +08:00
    OD 的 JD 薪资可以无视,纯看后面技术面试和你的工作时间计算综合定级。
    目标院校 150+,非目标院校 350+。考题分数纯看通过题目数量,这个应该是常识吧,你的联络人没告诉你吗?
    至于题目和什么步骤,估计都没人看那些东西,每个人都很忙,尤其技术部门的,这个不算绩效和时长,谁会去看呢。
    luvxy
        30
    luvxy  
       2023-08-16 17:50:49 +08:00
    @fridaycatye 怕你受不了他们的狼性文化是吧,哈哈
    RealJacob
        31
    RealJacob  
       2023-08-16 17:57:43 +08:00
    @zhq566 这。。。稍微大点的公司五年内都问算法吧
    iOCZ
        32
    iOCZ  
       2023-08-16 17:59:42 +08:00
    第一题应该记录两个下标就行了吧
    nyxsonsleep
        33
    nyxsonsleep  
       2023-08-16 18:00:44 +08:00
    至于题目难度,这个是纯随机的,我看你这几题都偏简单的样子,虽然描述比较绕,但也不清楚是不是你回忆有问题还是示例不完整。。
    polobug
        34
    polobug  
       2023-08-18 09:22:51 +08:00
    华为 jd 公积金按照多少交?比例多少哦
    rrubick
        35
    rrubick  
    OP
       2023-08-18 13:35:12 +08:00
    @polobug #34
    不清楚啊,我这第一关就挂了
    acvvkhalil
        36
    acvvkhalil  
       2023-08-25 22:37:39 +08:00
    无所谓的,我机考满分性格测试挂了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1222 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 17:26 PVG 01:26 LAX 10:26 JFK 13:26
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86