V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Nexvar
V2EX  ›  程序员

面试的时候,你遇到过哪些算法?

  •  
  •   Nexvar · 2016-10-24 16:55:01 +08:00 via Android · 5568 次点击
    这是一个创建于 2948 天前的主题,其中的信息可能已经有所发展或是发生改变。
    楼主遇到过的:
    LRU
    ThreeSum
    binarySearch
    。。。

    你呢?
    41 条回复    2016-10-27 11:50:33 +08:00
    ansheng
        1
    ansheng  
       2016-10-24 16:59:52 +08:00
    还没面
    qwer1234asdf
        2
    qwer1234asdf  
       2016-10-24 17:42:12 +08:00
    LRu/binary search/reverse list....
    ma125125t
        3
    ma125125t  
       2016-10-24 17:45:24 +08:00
    搞一个开源社区收集这些资源,配上答案,诸位觉得如何?不管有没有商业价值, star 想必是不少的。
    practicer
        4
    practicer  
       2016-10-24 18:01:12 +08:00
    @ma125125t leetcode 足矣, 如果是为了攒 star, 那是用 1024 爬虫吧
    ma125125t
        5
    ma125125t  
       2016-10-24 18:35:36 +08:00
    @practicer 我楼上没说清楚,这个开源社区收集的是面试遇到过的题目,配上答案,并且可以根据投递数排序,看看那些题目是最热门的最容易考的,用户量大了甚至可以付费看前几名的题目或者买答案。
    wangxn
        6
    wangxn  
       2016-10-24 19:16:47 +08:00 via Android
    @ma125125t 不就是 LeetCode 么? LeetCode 还能提交代码呢。
    kx5d62Jn1J9MjoXP
        7
    kx5d62Jn1J9MjoXP  
       2016-10-24 19:25:11 +08:00
    冒泡排序
    Nexvar
        8
    Nexvar  
    OP
       2016-10-24 19:27:42 +08:00 via Android
    @ma125125t
    这的确是一个需求

    leetcode 还没有 c2c(copy to china)呢
    byteli
        9
    byteli  
       2016-10-24 20:31:50 +08:00
    @ma125125t 牛客网现在 it 面试这块规模应该算最大了的吧
    wangxn
        10
    wangxn  
       2016-10-24 21:35:10 +08:00 via Android
    @Nexvar 早有了, LintCode ,牛客网什么的有的是。
    lcsoft
        11
    lcsoft  
       2016-10-24 23:04:00 +08:00
    冒泡排序,大数乘法。
    aznfy
        12
    aznfy  
       2016-10-25 02:36:01 +08:00
    Perry
        13
    Perry  
       2016-10-25 05:42:26 +08:00 via iPhone
    @ma125125t Leetcode 付费就是可以看热门考过的
    zhangbohun
        14
    zhangbohun  
       2016-10-25 08:09:02 +08:00 via Android
    快排
    MrFireAwayH
        15
    MrFireAwayH  
       2016-10-25 09:40:03 +08:00 via Android
    通过解释 A*成功装逼……
    liubo
        16
    liubo  
       2016-10-25 09:43:16 +08:00
    归并排序,要求空间复杂度 O(1);
    杨氏矩阵,就是算法导论里的那题...
    l6751902
        17
    l6751902  
       2016-10-25 09:45:57 +08:00
    ..当时面试官们手指了指白板风轻云淡的来一句:推 Fourier ,当时那一大群草泥马跑过去的心情。。。想摔门走了。。虽然到最后只是讲思路...
    66beta
        18
    66beta  
       2016-10-25 09:48:13 +08:00
    1 、双头队列的一串数字
    2 、用户决定,他自己先抽或让系统先抽
    3 、用户跟系统轮流抽一个,每次都可以从任意一头抽取一个数字
    4 、最终比总和大小论输赢

    需要结果:用户稳稳得输掉....
    jedihy
        19
    jedihy  
       2016-10-25 10:00:25 +08:00
    @66beta 哈,博弈类 DP
    jccg90
        20
    jccg90  
       2016-10-25 11:15:05 +08:00
    @66beta 如果不算平局的话,这个有解?
    66beta
        21
    66beta  
       2016-10-25 11:16:12 +08:00
    @jccg90 我毫无思绪答不上来,两头拿貌似控制不了啊
    alienx717
        22
    alienx717  
       2016-10-25 11:24:39 +08:00
    @MrFireAwayH 哈哈哈厉害
    aksoft
        23
    aksoft  
       2016-10-25 11:35:22 +08:00
    这么多算法,实际项目用到的比牛逼用到都少。
    chiu
        24
    chiu  
       2016-10-25 11:55:23 +08:00 via Android
    判断大小端
    andyfan
        25
    andyfan  
       2016-10-25 12:33:28 +08:00 via Android
    @66beta 好奇如果真能实现了的话让两个程序对着玩会怎么样
    hanzichi
        26
    hanzichi  
       2016-10-25 13:21:00 +08:00
    没遇到过一道 ...
    myv2ex
        27
    myv2ex  
       2016-10-25 13:33:17 +08:00   ❤️ 1
    4 种常用基本排序,树前中后序遍历,字符串倒置,斐波那契, 8 皇后,除了基本的排序,大部分已考察你的递归能力。
    shimanooo
        28
    shimanooo  
       2016-10-25 13:34:22 +08:00
    threesome?
    myv2ex
        29
    myv2ex  
       2016-10-25 13:34:57 +08:00
    对了还有 AStar ,我做 GEF 图形化的东西,每次必问
    hkalexyeung
        30
    hkalexyeung  
       2016-10-25 18:42:03 +08:00
    不要说很难的吧,光是 reverse array 都已经很多人做不来了,面试了好几个都写不出来,现在用 libaray 的人很多,基本功好的真的不多
    cncqw
        31
    cncqw  
       2016-10-25 19:09:27 +08:00   ❤️ 1
    有一次面试遇到一个逗逼 问了我一个猴子吃香蕉的算法
    BruceYuan
        32
    BruceYuan  
       2016-10-25 20:05:38 +08:00
    @hkalexyeung python 和 js 这种不是可以直接调用 reverse 吗?这样不算吗?
    hkalexyeung
        33
    hkalexyeung  
       2016-10-25 21:02:52 +08:00
    @BruceYuan 用 library 谁都会啦,那你知道 reverse 用了多少 memory 吗?这个问题看似很简单,但背后一大堆理论在后面。就好像一个最好的厨子,一定要会炒青菜一样。基本功才是解决问题的根本因素之一,去 stackoverflow copy and paste 是高效,但我们做技术的,总会将来面对一些问题是前无古人的,解决最难的问题的人,基本功肯定是好的。

    我面试了几个人,连 reverse 都自己写不来。。。:'(
    BruceYuan
        34
    BruceYuan  
       2016-10-25 21:24:04 +08:00
    @hkalexyeung
    def convertArray(arr):
    n = len(arr)/2
    length = len(arr)

    for i in range(n):
    arr[i], arr[length - i -1] = arr[length - i - 1], arr[i]

    return arr

    if __name__ == '__main__':
    a = convertArray([1,2,3,4,5])
    print a
    是类似于这样吗?不过一般来说自己实现的东西要比原生的慢好多,比如同样的操作比 arr[::-1]慢了简直不要太多啊。
    CodingPuppy
        35
    CodingPuppy  
       2016-10-25 21:26:59 +08:00
    @66beta 挺有意思,是先生成数据,用户看到数据后,可以决定先抽后抽,还是用户先定先后,再生成数据?
    hkalexyeung
        36
    hkalexyeung  
       2016-10-25 21:40:25 +08:00
    @BruceYuan arr[i], arr[length - i -1] = arr[length - i - 1], arr[i] <-- 这句语法我喜欢!但你有没有编译之后的机器码呢?有机会看看 :D

    现实是 reverse 没人会自己写的 :P 但面试问太难的算法的话,大家都背了答案,所以我这是返璞归真的问题 :P

    其实,我还可以问 String.split, regular expression, parseInt...etc 太多大家天天在用的 functions 啦,然后叫候选人写一下,看看基本功好不好 (我承认我变态 :P)
    66beta
        37
    66beta  
       2016-10-26 09:54:36 +08:00
    @CodingPuppy 没有差别吧,因为用户可以从两头取
    shiny
        38
    shiny  
       2016-10-26 11:55:36 +08:00 via iPhone
    面试是考察对方解决问题的能力,而不是难道别人。先问问自己平时遇到的都是些问题?
    hkalexyeung
        39
    hkalexyeung  
       2016-10-26 12:49:10 +08:00
    @shiny, 不难道别人,怎样看他解决问题的能力呢?
    shiny
        40
    shiny  
       2016-10-26 15:45:41 +08:00 via iPhone
    @hkalexyeung 想要难倒别人还不容易???
    hkalexyeung
        41
    hkalexyeung  
       2016-10-27 11:50:33 +08:00
    @shiny 有技术的难倒别人太难了,我面试题就想我整整两天。。。我的合伙人看到都哭了,哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1342 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:53 · PVG 01:53 · LAX 09:53 · JFK 12:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.