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

该怎么提高自己的算法能力啊?刷题有意义吗?

  •  
  •   mazingyu · 2015-06-14 14:07:54 +08:00 · 12717 次点击
    这是一个创建于 3469 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我准备走 iOS 开发,有时候感觉刷完题又忘了,在实际工作中不怎么用到,该怎么办呢?比较好的公司都注重算法能力呢?!
    42 条回复    2015-06-15 15:16:52 +08:00
    chengzhoukun
        1
    chengzhoukun  
       2015-06-14 14:20:47 +08:00
    然后就得造轮子、看源码、写一些基础的库之类吧
    binux
        2
    binux  
       2015-06-14 14:24:09 +08:00 via Android
    应用开发算法用处不大。
    不过就我平常做的,算法无外乎算法导论上的几种思路,主要还是一种感觉。
    主要还是看论文。
    webjin
        3
    webjin  
       2015-06-14 14:29:18 +08:00
    看缘分。
    rssf
        4
    rssf  
       2015-06-14 14:33:43 +08:00
    全看天赋,创意是没法学习来的
    pyKun
        5
    pyKun  
       2015-06-14 14:41:46 +08:00
    0 基础的话练练就好了,好的算法能力是建立在非常强的抽象能力的基础上了,先工作下,看看你抽象事务的能力和需求是多少...
    mazingyu
        6
    mazingyu  
    OP
       2015-06-14 15:02:23 +08:00
    @pyKun 想毕业后进入 BAT 这类的公司,算法方面该如何提高!
    iyaozhen
        7
    iyaozhen  
       2015-06-14 15:04:31 +08:00
    @mazingyu 面试的话,就刷题吧。
    lilydjwg
        8
    lilydjwg  
       2015-06-14 15:10:53 +08:00
    @pyKun 为什么我不觉得抽象能力和算法的关系很强?至少比软件架构设计差多了。
    mazingyu
        9
    mazingyu  
    OP
       2015-06-14 15:12:34 +08:00
    @iyaozhen 怎么刷题...有什么建议的书籍吗? : )
    xionghengheng
        10
    xionghengheng  
       2015-06-14 15:35:12 +08:00
    bat的话 数据结构加基本算法就好 给个量化点的标准 leetcode上的easy题随便刷刷就行 难题基本可以忽略
    letv
        11
    letv  
       2015-06-14 15:40:17 +08:00
    @xionghengheng medium要刷吗?
    xionghengheng
        12
    xionghengheng  
       2015-06-14 15:44:33 +08:00   ❤️ 2
    @letv 可以忽略 你想想面试的时候,只有20分钟不到,不会让你写很难的代码,二叉树,链表玩得转就行 然后递归,dfs,动态规划刷点 就行 切记不要为了刷体而刷体,别到时候题都刷完了,面试的时候要你写个快排或者堆排都写不出来 那就不好了。。。。
    mazingyu
        13
    mazingyu  
    OP
       2015-06-14 15:52:10 +08:00
    @xionghengheng 谢谢 : )
    mazingyu
        14
    mazingyu  
    OP
       2015-06-14 15:54:00 +08:00
    @xionghengheng 但是有的时候,为了面试会不得不为了刷题而刷题...刷题后又容易忘...无限死循环...
    nowcoder
        15
    nowcoder  
       2015-06-14 16:17:44 +08:00
    刷题开始肯定是有用的,关键是自己要刷的时候做总结
    loryyang
        16
    loryyang  
       2015-06-14 16:21:03 +08:00
    有意义吗?有意义
    怎么刷?用脑子刷
    zonghua
        17
    zonghua  
       2015-06-14 17:46:30 +08:00
    @binux 其实还是面相对象程序设计的设计模式吧
    yjd
        18
    yjd  
       2015-06-14 18:43:44 +08:00
    这真的得天赋才行。比如数学比较好。
    yxzblue
        19
    yxzblue  
       2015-06-14 20:06:39 +08:00
    进好公司当然得考算法。至少反转二叉树得写得来 :P
    deepreader
        20
    deepreader  
       2015-06-14 20:17:25 +08:00
    我只是刷刷题测下智商上线,以免写应用的时候觉得自己很牛逼。
    lvvj
        21
    lvvj  
       2015-06-14 20:19:29 +08:00 via Android
    @yxzblue 哈哈,高端黑…
    不过刷题是为了熟悉各种数据结构和常见算法,不要为了刷题而刷题。
    jiang42
        22
    jiang42  
       2015-06-14 20:21:27 +08:00
    大部分公司——我亲身经历过Google、百姓、Atrenta(现在被Synopsys收购了)以及一些优质小公司;还有一些网上流传的笔试面试题——考的算法都不难,你不搞算法竞赛没必要刷题,掌握基础算法知识点就够了,重要的是你能在白板上把你的算法转换成无BUG、可运行的代码。

    当然,刷题是有一定好处的,比如:在把算法转换成BUG-free的代码的时候比别人更快。
    lujiajing1126
        23
    lujiajing1126  
       2015-06-14 20:30:58 +08:00
    @jiang42 百姓都能和Google并列了么。。。。。。囧
    jiang42
        24
    jiang42  
       2015-06-14 20:39:49 +08:00
    @lujiajing1126 面试题的难度我觉得可以并列啊。我遇到过一些前Google员工给我面试的,他们工作的公司你听都没听过,但是面试题难度真心差不多。
    yhf
        25
    yhf  
       2015-06-14 20:40:59 +08:00
    国内的Google吗?大概是Leetcode什么水平?
    yhf
        26
    yhf  
       2015-06-14 20:41:09 +08:00
    @jiang42 国内的Google吗?大概是Leetcode什么水平?
    YouXia
        27
    YouXia  
       2015-06-14 21:06:28 +08:00
    @yhf
    国内的Google就别想了,ACM没地区金牌以上的基本上就不用考虑了。美帝的相应要求会低那么一点,当然也不是刷刷leetcode就能拿到的,特别聪明或者在美帝读书的除外。
    icylogic
        28
    icylogic  
       2015-06-14 21:26:39 +08:00 via Android
    有一次同学谈起 leetcode,我说你还用刷这个(他是那种高中看完算导的 noi 选手),他说是用来面试前练手速的 orz 。

    虽然不一定要像他那样,但是我觉得,算法,数据结构,OS知识这些基础,确实是完整地啃书啃下来的,指望看几道题就完全明白比较困难,不愿意看算导就看数据结构与算法基础,或者红色的那本算法。
    MikeFish
        29
    MikeFish  
       2015-06-14 22:04:58 +08:00
    红色的算法书叫什么
    TomDu
        30
    TomDu  
       2015-06-14 22:26:06 +08:00
    @MikeFish 算法= =...目前是第四版
    huanglexus
        31
    huanglexus  
       2015-06-14 22:38:59 +08:00
    每2天刷一道leetcode,日积月累
    msg7086
        32
    msg7086  
       2015-06-14 22:48:05 +08:00
    @xionghengheng 面亚马逊的时候被考了堆
    secondwtq
        33
    secondwtq  
       2015-06-14 23:05:31 +08:00
    @binux 不知您说的是哪种论文呢?我也就需要用的时候看一些机器学习、图像处理和图形方面的,感觉那些“算法”和这个主题的 context 下的“算法”完全是两回事。

    @MikeFish 同推荐 Algorithms 4th... 讲的不算深,但是看起来很舒服。
    mcfog
        34
    mcfog  
       2015-06-14 23:13:47 +08:00
    话说当年我校招面试的时候老板玩命提示我堆排,我就是想不起来还有堆排这么个算法,一直在扯快排……

    实际项目,学力适应力和思维方式都比算法重要的多,也难培养的多,隔壁数据结构也比算法更实际。算法什么的作为调剂当脑筋急转弯随便啦


    说穿了就是校招没法强行要求项目经验所以只能问问算法了这样……
    jiang42
        35
    jiang42  
       2015-06-14 23:21:34 +08:00
    @yhf HR会发邮件让你填表,里面会问你英语水平,我填了可以进行技术交流,分配给我的面试官就是中国人。。。但是工作地点想在中国。。。打算法竞赛吧,TC或者CF打到红色差不多了就
    binux
        36
    binux  
       2015-06-14 23:24:24 +08:00
    @secondwtq 做什么就看什么的论文啊。。不可能指望几个算法包打天下吧。
    canautumn
        37
    canautumn  
       2015-06-15 03:51:22 +08:00
    刷题只是手段的一种,关键还是自己总结吧,刷完不总结一下过几个月都忘了。
    cheng007
        38
    cheng007  
       2015-06-15 10:19:44 +08:00
    刷题还是有用的。你的想法还是太功利了,实际上你从小到大学的很多东西都是看起来并没有什么用,但那么知识组合起来在潜移默化的影响你整个人。
    数学,历史,物理,政治等等。
    算法也是一样的,你工作貌似用不到,如果你没有的话,很多问题你意识不到他是一个问题。
    loryyang
        39
    loryyang  
       2015-06-15 11:06:32 +08:00
    顶楼上两位,另外加一个,算法是你找到好工作的敲门砖,就像一个好学校一样
    pye52
        40
    pye52  
       2015-06-15 14:14:17 +08:00
    刷题才能知道自己实力到哪吧
    mazingyu
        41
    mazingyu  
    OP
       2015-06-15 14:49:08 +08:00
    @cheng007 谢谢
    xionghengheng
        42
    xionghengheng  
       2015-06-15 15:16:52 +08:00
    @msg7086 面百度考了快排····
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   887 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 20:15 · PVG 04:15 · LAX 12:15 · JFK 15:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.