请教一个笔试题以及评价标准 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mypchas6fans
V2EX    问与答

请教一个笔试题以及评价标准

  •  
  •   mypchas6fans 2019-08-24 13:10:31 +08:00 2261 次点击
    这是一个创建于 2323 天前的主题,其中的信息可能已经有所发展或是发生改变。

    远程面试一个 QA 职位,给了一道 codility 的题,限时 60 分钟

    内容记得不是很确切,关键词叫 binarian,大意是给一个正整数数组,对每个 i 取 2^i 然后求和,比如[0,1,2,3]得到 1+2+4+8=15,然后问有没有更短的数组得到 15 这个目标值。

    我用了 20 多分钟写了个 python,基本思路是算出目标值,然后简单的贪心算法,如 15 对 2 取对数然后向下取整得到 3,15-2^3=7,继续递归加起来。反正有 2^0=1 兜底,肯定能得到一个数组。然后看是不是比原数组更短。 测试了几组数感觉没什么大问题。

    然后,我就被灭了……算法和刷题确实做得少,我估计大概有动态规划什么的可以得到最优解? 但是我就想知道,我的做法有没有什么问题,以及我连面试机会都没了算是啥水平……

    求轻拍。

    7 条回复    2019-08-24 17:05:39 +08:00
    smdbh
        1
    smdbh  
       2019-08-24 13:24:22 +08:00
    垃圾公司。正常的套路应该是你给个算法,一般是 n2 级别,然后被面试官不断提问,然后改进么
    geelaw
        2
    geelaw  
       2019-08-24 13:52:47 +08:00 via iPhone
    这个是一个简单题目,是楼主自己想复杂了

    答案 = 在最后的数的二进制展开里有多少个 1
    geelaw
        3
    geelaw  
       2019-08-24 14:05:45 +08:00 via iPhone
    @geelaw #2 刚看了一下楼主的解法,也是对的 - - 然而转换成二进制的方法比常见的要麻烦好多。我觉得面试者希望的算法应该是对原来的数组排序后直接算出答案,不要经过算出目标值的过程(因为可能要引入大整数计算)。

    方法是反复替换数组里的一对 a 为一个 a+1,直到数组里的数互不相同,此时数组的长度就是答案。
    mypchas6fans
        4
    mypchas6fans  
    OP
       2019-08-24 14:30:20 +08:00
    @smdbh 大概没说清楚?是线上 coding 测试。
    mypchas6fans
        5
    mypchas6fans  
    OP
       2019-08-24 14:33:39 +08:00
    @geelaw 感谢,确实是这两种思路应该更快
    minmini
        6
    minmini  
       2019-08-24 14:43:13 +08:00 via Android
    现在 QA 也要面算法了吗?看来要时不时去刷点题了
    1608637229
        7
    1608637229  
       2019-08-24 17:05:39 +08:00
    最短就是转换二进制后看有几个 1。转换成二进制后这个数字有几个 1 组成就是最短了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2456 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 08:30 PVG 16:30 LAX 00:30 JFK 03:30
    Do have faith in what you're doing.
    ubao msn 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