该怎么提高自己的算法能力啊?刷题有意义吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mazingyu
V2EX    算法

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

  •  
  •   mazingyu 2015-06-14 14:07:54 +08:00 13237 次点击
    这是一个创建于 3827 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我准备走 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  
    nbsp;  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  
       205-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     Solana     5081 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 08:46 PVG 16:46 LAX 00:46 JFK 03:46
    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