V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
YadongZhang
V2EX  ›  职场话题

试了一下华为 od 机试题

  •  1
     
  •   YadongZhang · 85 天前 · 5676 次点击
    这是一个创建于 85 天前的主题,其中的信息可能已经有所发展或是发生改变。

    杭州前端岗

    总共 3 道题,限时 150 分钟

    1

    题目描述

    给出一个整数数组,找出出现频率最多的数字,输出该数字在数组中最后一个下标与第一个下标之差,如果有多个频率最高数字,输出最小下标之差。

    测试用例:

    [1, 2, 2, 3, 3, 4, 3, 1, 1],频率最高的有数字 1 和 3 ,但是 3 构成的数组 [3, 3, 4, 3] 长度 ( 4 )最小,所以输出 4 。

    解法:

    HashMap ,根据 value 排个序,找出频率最高 key, lastIndexOf - indexOf, 然后 Math.max(ans, tempMax)

    总结:

    这道题耗时最长,以前从未做过 HashMap 排序,最后转成数组排序的

    测试通过率✅: 80%(应该是有 edge cases 没考虑到)

    2

    题目描述

    双人自行车限重 m ,给出一组公司员工体重,每个人的体重都小于限重,求最少需要多少辆双人自行车。

    解法:

    排序 + 双指针

    总结:

    有思路了就直接 AC 了

    测试通过率✅: 100%

    3

    题目描述

    连续子列问题,一个整数数组,数据规模较大,输出和( sum )相等的连续子列构成数组的最大长度。

    测试用例:

    test cases

    解法:

    每一个元素看做一个子序列,遍历一遍

    总结:

    原题中文描述的,太抽象了,也没掌握过什么高级数据结构和算法,暴力解了

    测试通过率✅: 56.36%(数据规模较大,算法复杂度太高,应该是超时了)


    当天下午在牛客上刷了 5 道题,熟悉了一下输入输出,晚上题目发过来就做了

    机考是用牛客的 ACM 模式,每道题只能提交一次,90 分钟交卷,最后得分 260

    运气还算比较,基础数据结构里没有二叉树相关题目

    小技巧:草稿纸上演算一次效率超高

    以前面试都是盯着屏幕傻看。。。


    因为简历上有超过半年空窗期,后面流程也就没往下走了,另外,因为身体原因,不大能适应加班。

    有需要的就当经验帖了

    35 条回复    2023-01-11 09:12:34 +08:00
    ajaxgoldfish
        1
    ajaxgoldfish  
       85 天前
    前端难度和 cpp 难度相差大吗,我现在算法大约也就这个水平。
    BanGanExpert
        2
    BanGanExpert  
       85 天前
    前端都这样了?这个是面试几年的?我是没有大厂面试经历,还是大厂都是这风格吗
    这难度虽然其实并不算难,就我作为 Java 工程师来看,我估计很多 3 年水货工程师是过不了的
    TuneG
        3
    TuneG  
       85 天前 via iPhone
    华为笔试题不区分年份的,都是一样的题,不管你是几年,都是一个系统考试,难度基本就是 leetcode 中等难度题,年份只是面试和定级的时候有用
    hidemyself
        4
    hidemyself  
       85 天前
    od 就这样,机试稍微难一点,不分前后端,题都一样的。
    几轮面试的题目会简单一点。
    tialias
        5
    tialias  
       85 天前
    我当时面 od-测试,第一道就是接雨水,第二道是什么小岛动态规划的
    muntoya
        6
    muntoya  
       85 天前   ❤️ 2
    @BanGanExpert #2 哈哈,要有自信,做出这些题不需要是工程师,工程师也不会用到这些,好多应届生刷了几百题就能过了
    mingszu
        7
    mingszu  
       85 天前
    @BanGanExpert 跟几年经验没关系,刚毕业的甚至算法能力更强,毕竟人在学校没事就刷
    chendl111
        8
    chendl111  
       85 天前
    校招刷个 200 到 leetcode 水平
    jincan39
        9
    jincan39  
       85 天前
    小兄弟 为啥最近半年空窗?
    mmmfj
        10
    mmmfj  
       85 天前
    之前问过 od 招聘的有空窗也没事,为什么你不继续面了
    A555
        11
    A555  
       85 天前
    一题不会 😅
    daliusu
        12
    daliusu  
       85 天前
    @ajaxgoldfish 华为 od 是玄学招聘,我前端同事之前做了一次瞎做也过了,感觉这个就是流程,而且都是一样的难度,只是根据实际岗位肯定会有放水情况
    YadongZhang
        13
    YadongZhang  
    OP
       85 天前
    @ajaxgoldfish

    cpp 是指 c++ 吗?
    以前还会写 hello world ,现在都不会了,不知道难度差别大不大


    @jincan39

    Freelance Web3 太爽了


    @mmmfj

    因为 od 招聘说有事,微信突然不回,问了才知道。另外,有加班,身体原因顶不住。。。
    Promtheus
        14
    Promtheus  
       85 天前
    @BanGanExpert 如果没有刻意刷过题的话,大多数十年的都不见得会做。这和年限都没关系。毕竟实际开发中很少用到算法
    jedihy
        15
    jedihy  
       85 天前
    @BanGanExpert 算法题不是你工作几年就会做的。刷三个月题比三十年工作经验管用。这种 LC easy-medium 的经典题直接可以默写。
    YadongZhang
        16
    YadongZhang  
    OP
       85 天前
    @jedihy 太强了,羡慕可以直接默写的,我差点写哭了,写不出来嘛
    7911364440
        17
    7911364440  
       85 天前   ❤️ 1
    @YadongZhang 你刷下 leetcode 就知道了,很多题都是有套路的,想不出来也很正常。
    tonytonychopper
        18
    tonytonychopper  
       85 天前   ❤️ 1
    OP 有空可以刷下 lc ,这几道题都算比较经典的
    zanx817
        19
    zanx817  
       85 天前
    第三题有没有第二个参数 K ,要求 sum=k 的子数组?
    此时引入 prefix sum 可解。

    如果没有 k 的话,这个题是 hard 难度了。目测要用 hash 。
    zanx817
        20
    zanx817  
       85 天前
    目测:第一题是典型的滑动窗口题。 OP 的解法应该是不佳的。 应引入 hash 记录频率。
    zanx817
        21
    zanx817  
       85 天前
    笔试 2.5 小时,比考博时间还要长了
    yifangtongxing28
        22
    yifangtongxing28  
       85 天前   ❤️ 1
    大家的重点为什么都在题目上,不应该是 od 对空窗半年的人直接拒绝吗?
    netabare
        23
    netabare  
       85 天前
    手写还是 OJ 还是指定机器?
    光看描述感觉没什么难的……?看起来都是很基础的算法题。一道题 50 分钟,很宽裕了。当然也要看数据集怎么样,如果是类似 ACM 那种数据集的话估计还是有点压力。
    JasonLaw
        24
    JasonLaw  
       84 天前
    ```python
    from math import inf

    arr = [2, 5, 9, 4, 3, 3, 6, 1, 7, 4, 1, 2]
    d = {}
    for i, n in enumerate(arr):
    if n not in d:
    d[n] = [0, i, i]
    d[n][0] += 1
    d[n][2] = i

    max_freq, index_diff = -inf, inf
    for n, v in d.items():
    if v[0] > max_freq:
    max_freq = v[0]
    index_diff = v[2] - v[1]
    elif v[0] == max_freq:
    index_diff = min(v[2] - v[1], index_diff)
    print(index_diff)
    ```
    JasonLaw
        25
    JasonLaw  
       84 天前
    第一题

    JasonLaw
        26
    JasonLaw  
       84 天前
    第二题

    JasonLaw
        27
    JasonLaw  
       84 天前
    不是很理解第三题。

    “连续子列问题,一个整数数组,数据规模较大,输出和( sum )相等的连续子列构成数组的最大长度。”

    sum 指的是什么,一个参数吗?是要我们找出总和等于 sum 的最长的连续子数组的长度吗?
    YadongZhang
        28
    YadongZhang  
    OP
       84 天前
    @zanx817

    没有 k ,第二个参数是数组长度

    用了 hashmap ,我上面描述应该写了

    @netabare
    OJ ,ACM 模式,没有报错提示,而且只能提交一次
    我记得只有最后一题数据量比较大


    @JasonLaw

    sum 任意,不是参数,看我上面那个例子
    JasonLaw
        29
    JasonLaw  
       84 天前 via iPhone
    @YadongZhang #28 完全不理解那个例子,可以的话,解释一下?
    YadongZhang
        30
    YadongZhang  
    OP
       84 天前
    @JasonLaw

    以第一个数组来例

    8 8 9 1 9 6 3 9 1 0

    连续子列的和可以是任意单独元素

    假设是 8 ,那么构成最终数组的连续子列分别为
    [
    [8],
    [8],
    ]
    该数组长度为 2

    第二个元素结果相同,直接跳过

    遍历到第 3 个元素 9

    [
    [9],
    [9],
    [6, 3],
    [9]
    ]
    该数组长度为 4 ,更新结果 Math.max(2, 4) = 4

    继续遍历,和为后面元素的连续子列构成的数组长度均为 1

    所以最终输出 4

    原题描述是挺抽象的,我是看题目标题和测试用例推出来的,不知道我理解对不对
    asensio
        31
    asensio  
       84 天前
    op 是目标院校么,非目标院校的要 300 多分额
    asensio
        32
    asensio  
       84 天前
    求分享下做 Freelance Web3 的经历,😄
    hardto
        33
    hardto  
       82 天前
    同求分享一下 freelance 的经历吧
    ccc825
        34
    ccc825  
       82 天前
    22 年上半年做的笔试题,如果不涉及比较难的动态规划、滑动窗口这类题,用 php 感觉很简单,做了 320 分。
    然后现在入职了尝试考了一次专业级 c 的算法题,0 分……
    c 真的太难了,排序和哈希都得自己去实现。还好 od 要求转正前过工作级就可以,努力学下 c 和算法应该没什么大问题。主要是不知道能不能干到转正,入职两个月已经想跑路了,做的东西有一点兴趣但是太难学,而且以后跳槽方向很小
    UN2758
        35
    UN2758  
       79 天前
    之前做过 od 的机试,只记得有道二维矩阵搜索,那时候题目比较简单,只有一道题目用例不是百分百,现在应该变难了
    关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   938 人在线   最高记录 5556   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 22:08 · PVG 06:08 · LAX 15:08 · JFK 18:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.