V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Nexvar
V2EX  ›  程序员

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

  •  
  •   Nexvar · Oct 24, 2016 via Android · 6531 views
    This topic created in 3484 days ago, the information mentioned may be changed or developed.
    楼主遇到过的:
    LRU
    ThreeSum
    binarySearch
    。。。

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

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

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

    我面试了几个人,连 reverse 都自己写不来。。。:'(
    BruceYuan
        34
    BruceYuan  
       Oct 25, 2016
    @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  
       Oct 25, 2016
    @66beta 挺有意思,是先生成数据,用户看到数据后,可以决定先抽后抽,还是用户先定先后,再生成数据?
    hkalexyeung
        36
    hkalexyeung  
       Oct 25, 2016
    @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  
       Oct 26, 2016
    @CodingPuppy 没有差别吧,因为用户可以从两头取
    shiny
        38
    shiny  
    PRO
       Oct 26, 2016 via iPhone
    面试是考察对方解决问题的能力,而不是难道别人。先问问自己平时遇到的都是些问题?
    hkalexyeung
        39
    hkalexyeung  
       Oct 26, 2016
    @shiny, 不难道别人,怎样看他解决问题的能力呢?
    shiny
        40
    shiny  
    PRO
       Oct 26, 2016 via iPhone
    @hkalexyeung 想要难倒别人还不容易???
    hkalexyeung
        41
    hkalexyeung  
       Oct 27, 2016
    @shiny 有技术的难倒别人太难了,我面试题就想我整整两天。。。我的合伙人看到都哭了,哈哈
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2733 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 79ms · UTC 01:12 · PVG 09:12 · LAX 18:12 · JFK 21:12
    ♥ Do have faith in what you're doing.