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

Leetcode 刷 200 多道题了,经验与迷茫

  •  
  •   langhunws · 2018-10-13 00:09:37 +08:00 · 25488 次点击
    这是一个创建于 422 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/geemaple/algorithm

    记录是激励自己的好方式,留下自己的 Repo,与君共勉,要找工作了,求个好运吧🍀,2018-10-13


    我是一个 iOS 程序员, 非 top 名校,侥幸 211,985 都有。毕业季 objective-c 和 python 是一起学的,只因当时 iOS 太火爆,走上了这条不归路

    2017 年 10 月份左右的时候,看了《剑指 Offer 》,只刷了 50 道左右题目。那时候也没什么章法,先按简单的来,30 几道之后就刷不动了。简单的问题都搞不定,自信心被打击的不行,扔了半年。

    这时,我只是对几种常见排序,入门级别的动态规划有了解。但底子仍为 0,连时间复杂度也弄不明白。老实说,我就是曾经那些 diss 算法根本用不上的中的一员。

    出来混,迟早都要还的,想要去硅谷的执念仍在,2018 年过年回来陆续开始按照标签来刷,二分查找,双指针,分治,递归,广度优先,深度优先,动态规划。

    如果是 Google 和脸叔的题,基本上直接认怂。很多题自己只能有一部分思路,然后就是无解,好多答案都是想不出来研究别人的,甚至好多看解释半天都理解不了,有时还要去翻相关概念,经常把答案 copy 到 IDE 里面一点点调试,和自己写的对比。有时就差一个字符,结果千差万别。

    这半年几乎把时间都用在了刷题上,除了心情状态不佳,工作,或有点拖延症外几乎都在刷题,在公司,在家,在亲戚家,高铁动车,卧铺,参加婚礼空闲的时候都在找地方刷题

    我把题号记在 Anki 里面,像单词一样去重复的刷做过题。欠了 125 多个题还没有及时重刷,该加把劲了~

    自己这半年是有成长的,有大神说无论状态怎样都要刷题,像运动员锻炼一样,因为一旦放下,可能就会放下好久。

    76 回复  |  直到 2019-12-09 14:43:09 +08:00
        1
    Ruohua3kou   2018-10-13 00:20:51 +08:00 via iPhone   ♥ 1
    我一天做一道还都经常不敢做难点的,我要像你学习~
        2
    yidinghe   2018-10-13 00:29:43 +08:00 via Android   ♥ 1
    刷了这么多题,循环和判断因该会写了。接下来就是学面向对象。
        3
    likuku   2018-10-13 00:44:20 +08:00
    算法科学家之路在向您招手...
        4
    poplar50   2018-10-13 00:56:34 +08:00 via Android   ♥ 1
    @yidinghe 你这个回复是认真的吗。。
        5
    portlet   2018-10-13 01:00:11 +08:00 via iPhone
    点赞
        6
    df4VW   2018-10-13 01:14:47 +08:00   ♥ 1
    @poplar50 他说的没毛病
        7
    wind3110991   2018-10-13 01:17:24 +08:00
    说说心得,感觉自己工作久了也得刷刷了,现在感觉基础知识还不如个校招生
        8
    jedihy   2018-10-13 01:50:28 +08:00
    难题都是 G 的题。FB 的题做不出,你应该是有一些基础没有打好。
        9
    justyy   2018-10-13 03:14:59 +08:00   ♥ 4
    祝好运。重点刷刷 BFS,DFS 和动态规化的题。我也刷了 200 多道, 已经拿到了 GE 的 Staff SE 的职位(英国剑桥),每刷一道,上传 github 写博客分享,这样才能学习,https://github.com/DoctorLai/ACM/blob/master/leetcode/README.md 这是脚本自动生成的目录
        10
    justyy   2018-10-13 03:15:20 +08:00
        11
    sadhen   2018-10-13 03:22:16 +08:00   ♥ 1
    @justyy @langhunws 大佬们都是工作几年开始做 rou 翻的打算的

    带老婆出去么?女朋友的都没有的,是不是得赶快找个女朋友。 :(
        12
    justyy   2018-10-13 03:53:26 +08:00
    @sadhen 老婆出来再找 ^_^ 我老婆就是出来再找的。
        13
    Andiry   2018-10-13 03:58:49 +08:00 via Android   ♥ 1
    想去硅谷应该把时间花在申请上,而不是刷 leetcode
        14
    ToT   2018-10-13 04:41:21 +08:00
    肉身翻 还有工作经验 英语水平 等等要求,出来读书要容易些。
        15
    realkenshinji   2018-10-13 07:54:17 +08:00 via iPhone
    马一个,之前我也是刷了一部分 codility 的题,leetcode 没刷两个
        16
    lhx2008   2018-10-13 07:59:35 +08:00 via Android
    我是非科班的,每次刷题都在怀疑自己智商。
        17
    langhunws   2018-10-13 09:20:39 +08:00
    @justyy 最近在刷动态规划了,不过实在是太难了,状态方程不好写啊
        18
    simonqian   2018-10-13 09:31:38 +08:00
    去硅谷工作不一定要算法好,只要你在某一方面有过人之处就行
        19
    askfilm   2018-10-13 10:16:56 +08:00   ♥ 1
    我觉得至少在国内刷题这种行为就是把实用主义拉回了理论主义, 简单的讲就是: 要求开挖掘机的学柴油机原理

    没有 google 的命 确有 google 的病
        20
    lusirui   2018-10-13 10:34:19 +08:00
    @simonqian 感觉有过人之处这个难度比刷题高
        21
    yang2yang   2018-10-13 10:46:31 +08:00
    怎么才能去硅谷工作?
        22
    shiina   2018-10-13 10:51:56 +08:00
    前段时间也做了 200 多个题,能力有点提高,但是已经感觉到了自己的的能力上限。
        23
    ffffish   2018-10-13 10:55:01 +08:00   ♥ 1
    送你一句共勉 刷题不一定能找到工作 不刷题一定找不到工作 (大牛除外
        24
    songtianyi   2018-10-13 11:23:33 +08:00
    "因为一旦放下,可能就会放下好久" 曾经的 acmer 很赞同这句话。算法这东西,捡起来真的困难, 一个是没那么多时间了,一个是思维跟不上了。
        25
    beny2mor   2018-10-13 11:39:18 +08:00
    问不对题,你的迷茫提现在哪里......

    曾经刷了段时间,真的一放下就不想去捡了
        26
    Desiree   2018-10-13 11:40:17 +08:00
    加油,我也在刷,速度可能还没你那么快,不过坚持下来才是刷题最难的,因为算法的思维才是刷题的核心,如果你有一天将量到一定程度,可能就会看到更广阔的世界吧。
        27
    Windsooon   2018-10-13 12:01:49 +08:00   ♥ 2
    如果楼主刷了 200 多题还迷茫的话,那刷题的方法一定出错了,要知道以前的 Leetcode 一共也只有 200 多题。我觉得更好的方法是刷完一题之后好好总结为什么一开始没有做出来。例如 G 家常出的 Word Break,可以用 DFS, BFS, DP 来解。真正能用几种方法解出这道题需要很多时间训练以及基础知识的积累。而且一般这些原题都有 follow up,不真正理解是解决不了的。如果要去国外工作的话,我建议可以看看一亩三分地的面经。在 Pramp 上 mock interview 试试。
        28
    likuku   2018-10-13 12:05:48 +08:00
    @ffffish [不刷题一定找不到工作] ... 这太绝对化了吧
        29
    ffffish   2018-10-13 13:17:59 +08:00   ♥ 1
    @likuku #28 trust me 当然也有例外 即使大牛也需要准备 因为面试都是技巧
        30
    AntiGameZ   2018-10-13 13:25:37 +08:00   ♥ 1
    半年时间,200 题,应该反复刷了不止一遍吧?这个时候应该会有瓶颈期了,能自己突破当然好。突破不了的话,还是买本 Algorithm 4th 之类的书,从头梳理一遍思路吧。

    现在只是把题目做出来已经不够,还得琢磨一题多解,熟悉各种套路。

    对于非算法爱好者,而又得在硅谷混的人来说,刷题,真是一个慢性病……
        31
    mathzhaoliang   2018-10-13 13:47:05 +08:00   ♥ 1
    我有点不太明白,要去大公司的话,拿着自己写过的牛逼项目去不是更好吗?要不就自己创业,干嘛挤破头去硅谷呢?
    难道你希望等你 N 年以后咽气了,别人在你的墓志铭上写:"这人刷了一万道 leetcode,拿了硅谷几十个 offer,可是一个牛逼的项目都没有" ?
    最好是现在想清楚自己的方向,朝这个方向走,好过漫无目的的刷题。
        32
    likuku   2018-10-13 14:04:52 +08:00
    @ffffish 只要不去一线大厂,需要杠算法科学的不多见了
        33
    UIXX   2018-10-13 14:10:50 +08:00   ♥ 1
    哎,我深深感觉到一些面经害人不浅。潜移默化地告诉想去大公司的人刷题等于面试成功。(事实上这些人不一定是因为自己的 coding 能力被录取了,你永远不知道他们都有哪些隐性优势)
    我暂同 @mathzhaoliang 的部分观点,有方向、有项目就是最好的起步,算法只能算内功,没有招式也使不出劲。很多算法复杂,你没接触过实际应用单纯做题纯粹像是背八股文那样索然无味,时间一长也就忘了。

    除非你要参加比赛,那是必须要刷题的。如果你已经有了工作,在实际项目上努力更加节省时间。
        34
    melonrice   2018-10-13 14:29:02 +08:00
    额,2017 年 iOS 火爆?
        35
    paw   2018-10-13 15:27:05 +08:00   ♥ 9
    刚负责某厂的校招 1 面,讲真,在面的那些人中,号称刷题过千 /acm 的,基本都直接给挂了,给过的也在后面 2/3 挂掉了,有个好像是 acm 全国二等奖一面也没给过。你 acm 再牛逼,问一个 c++虚函数相关问题,居然有反问虚函数是啥的;不按 acm 套路出算法题,给一个实际产品场景让设计效率尽可能高的数据结构,就挠头了,没一点抽象能力。招进来干啥?

    招人是开发项目的,不是让你多能解奇葩算法题的,而是看你的综合基础知识;解决实际工程 /产品问题的能力等。

    既然 lz 现在已经入坑 ios 开发了,就往 ios 深处挖一下,了解底层机制 /优化 /网络等和一些常见的开发模型以及为啥这样好等,这些在求职中还是很有用处的。保持一种往下挖一层的好奇心还是很有用的,知其然知其所以然。

    还有 lz 再面应该也算是社招了,实际项目经验也是很重要的一点了。

    刷题,自我安慰罢了,除非是那种以此为乐的。如果是带着功利心去刷,别浪费时间了。
        36
    ffffish   2018-10-13 16:19:34 +08:00
    @likuku #32 可是还是想去大厂 /狗头
        37
    wcgwuxinwei   2018-10-13 18:33:50 +08:00 via iPhone
    @paw
    老哥说到点子上了,+10086
        38
    daredevilll   2018-10-13 18:35:01 +08:00
    扔个链接: https://github.com/Kexin-Li/LintCode

    刷一百多道了,和楼主一样的思路,分类别刷题,感觉这样算法知识会变得系统很多。

    前路漫漫,向楼主学习。
        39
    justyy   2018-10-13 18:46:08 +08:00
    @paw 对,ACM 只是加分, 还是看综合实力,看你做过什么项目啥的。 我一般喜欢问 C++的 virtual destructor 有啥用 (可以刷掉很多人)。
        40
    guanghe123   2018-10-13 19:29:16 +08:00
    @justyy 大佬是在国内 rou 翻的吗,方便介绍下拿到 offer 的方法吗~
        41
    fanqianger   2018-10-13 19:34:56 +08:00
    刷题不是全部,但是是一些基础吧。我觉得能把 easy 和 medium 的题目了解就行了。反正我不是挂在刷题上(笑
    另外,现在 H1B 基本上不可能了,楼主不如考虑欧洲,澳洲,新加坡等地方。
        42
    aihidao   2018-10-13 21:24:59 +08:00
    我刷题效率很低。一年到现在才 98 道。因为都是偶尔一段时间刷刷。

    确实能感觉到做题 思路会越来越清晰,从一开始的 拿题就做,提交十几次,到现在思路清晰,提交一两次就过。

    刷题可能对人工作帮助不大。但真没有一些人说的那么不堪。

    如果一道题我的执行效率比别人慢了,我都会分析一下为什么我慢,对方思路有什么好的,或者为什么那样写会快点。

    这样怎么没有帮助,虽然现在硬件越来越不值钱,但是注重下效率什么的总是好的。
        43
    mathzhaoliang   2018-10-13 21:55:01 +08:00   ♥ 2
    我个人认为刷 leetcode 是一种投机取巧的行为,跟考托福 GRE 刷历年题库一样,本质目的是为了拿到 offer,对个人职业提升有限。
    有功夫不如多看一点数学、看看最新的论文、或者计算机语言的底层。
    leetcode 刷得再溜,对理解压缩感知、alpha zero、随机控制有什么帮助吗?别人讨论区块链、自动驾驶、人脸识别的时候能插上话吗?真正的算法是不依赖于这些 "编程技巧" 的。理解这些算法背后的原理带来的愉悦感远远大于刷 leetcode 得高分的成就感。
        44
    Oz2011   2018-10-13 22:03:16 +08:00
    中国身份直接拿 offer 肉翻真的不容易,去上个学吧
        45
    ffffish   2018-10-13 22:18:10 +08:00
    @mathzhaoliang @paw 其实 FLAG 也都知道刷题(包括白板手写代码)并不是最理想的面试方式,但是也没有更好的方法啊,而且别人都刷你不刷那肯定吃亏啊。我认为 leetcode 单独做起来其实还是蛮好玩的,但确实不是招聘应该考察的全部范畴。
        46
    ACool   2018-10-13 22:19:26 +08:00   ♥ 1
    @mathzhaoliang #43 我觉得刷 Leetcode 对于编程能力其实是有帮助的,有助于编码时思考更全面,写出 bug free 并且优良的代码的几率更大。对于计算机科学来说,编程能力也是基本功之一,就算是最新的论文,也需要编程来实现,没有良好的编程能力,是很难做到复现或者改进的。
        47
    justyy   2018-10-13 23:04:01 +08:00
    @guanghe123 我是在英国读书工作后申请的。国内想要肉身单靠刷题翻出来,很难,真的。还不如出来读个书先。
        48
    tianshilei1992   2018-10-13 23:28:01 +08:00   ♥ 1
    @ACool 我同意。很多人认为刷题没用,但是实际上就是在刷题中养成的全面考虑的思维逻辑才是最重要的。工作中很多人写代码都是想当然,很多 corner case 直接就想不到,这样做对产品后面的质量会造成很大的威胁。之前在修复某深度学习框架的时候,发现里面某个函数的有一段 code 就想当然的把输入当成一定是某个样子的,然后就出错了…影响了最后的收敛。
        49
    Tcdian   2018-10-14 00:29:05 +08:00 via Android
    转行前端的大专生,LeetCode 360 + 了,还没有工作 ~😔
        50
    Tcdian   2018-10-14 00:53:11 +08:00 via Android
    @Tcdian 留个 github 吧, 万一能蹭个 star,就赚到了~
    https://github.com/Tcdian/tcdian_leetcode
        52
    holyghost   2018-10-14 03:01:49 +08:00   ♥ 1
        53
    AntiGameZ   2018-10-14 06:26:26 +08:00
    @UIXX 硅谷的某些一线大厂,对于入门级职位,真的是只面算法题,基础知识这些一概不问的。这也是为啥身边一看,转专业念 1-2 年 Master,同样刷题,找的工作并不比科班出身差的原因之一。
        54
    justyy   2018-10-14 07:06:38 +08:00
    @guanghe123 我是到英国读书的, 这是我的简历: https://steakovercooked.com/documents/cv.pdf 每个人都不一样,所以我的一些经验可能不太适合大家。
        55
    CodeM   2018-10-14 07:43:19 +08:00
    @Oz2011 #44
    说得跟现在留学生好找工作似的
        56
    loryyang   2018-10-14 08:28:37 +08:00
    加油!
        57
    Oz2011   2018-10-14 08:46:38 +08:00 via iPhone
    @CodeM 再怎么样比在国内刷题想肉翻的容易 10 倍不止吧。你在国内拿得到几个美国公司的面试机会?人家留学生毕业能拿多少面试机会?说句难听的你 900 道都刷完也不一定有人给你刷题机会啊
        58
    luopengfei14   2018-10-14 08:49:40 +08:00 via iPhone
    @Tcdian 坚持
        59
    CodeM   2018-10-14 08:57:38 +08:00
    @Oz2011 #57
    您又开始想当然了
    现在很多公司看见你是留学生就说不好意思我们不给 sponsorship 了你找别家吧
    现在这种就业环境 您觉得毕业能拿到多少面试机会?
        60
    AntiGameZ   2018-10-14 09:11:54 +08:00 via iPhone
    @CodeM 也没那么惨,美帝 5 月份毕业,我是最后一个找到工作的。即便这样,面试我也没断过
        61
    Oz2011   2018-10-14 09:44:53 +08:00 via iPhone
    我说了啊,比国内刷题想拿 offer 肉翻的机会起码多 10 倍啊。毕业生都不给 sponsorship 的会给海外人面试机会吗?
        62
    pythonee   2018-10-14 20:20:43 +08:00
    很佩服你的坚持
    前途会是一片光明的
        63
    justyy   2018-10-15 00:48:57 +08:00
    @Oz2011 @AntiGameZ @CodeM 我人在英国, 有英国绿卡, 可以告诉你们, 在英国的 TOP 10 公司也是基本上不给办工签的. 更不用说 直接招国内的人了.
    如果你没有大公司背景,也不是什么牛津剑桥 MIT, 没有做过什么有名很牛逼的项目, 你刷个几万道题也不会有公司给你面试机会的.
    TOP 10 公司我都投过, 只有 AMAZON 给我面试机会, 我一路杀到了终面 (五个小时), 不过很可惜, 刷题并不是全部. 其实最好的办法 就是内推...
        64
    Raisu   2018-10-15 08:02:35 +08:00 via Android
    人脉也很重要的啊
        65
    hjiang   2018-10-15 11:18:22 +08:00   ♥ 1
    不要为了面试用题海的办法学习,形成不了知识体系。学习从根本原理出发会事半功倍。虽然各种算法看起来数量很多,计算机领域解决问题的思路数量无非就几种,算法只是在具体问题上的应用而已。
        66
    guanghe123   2018-10-15 21:55:23 +08:00
    @justyy 多谢多谢,看来 rou 翻没戏了,悲伤。。。看了简历,真的好棒呀~
        67
    helloworld000   2018-12-02 07:13:44 +08:00
    @justyy 没你说的那么严重,英国还是很多公司可以给办签证的,每年也是有一些毕业 under/masters/phds 能留下来(随便去那几个大公司的 linkedin 看看就知道有不有同胞了),当然也得自己非常厉害,top10 学校的学生只要不是太水,简历好好让已经在 flag 大公司里的人给改改都能拿到面试,拿到面试后面就看造化了。

    @guanghe123 可以出去读个 master,有个 top10 学校的就能拿面试了,到了面试就看个人造化了。
        68
    helloworld000   2018-12-02 07:30:37 +08:00   ♥ 1
    @justyy 内推也只是帮你拿到面试,后面还是得靠自己。除了 coding,亚麻是非常看重 principle leadership 的,你下次好好准备下这个应该就可以

    https://zhuanlan.zhihu.com/p/43194520
    https://www.jianshu.com/p/c417bf539a61
        69
    justyy   298 天前
    @helloworld000 Thank you. Noted...
        70
    helloworld000   227 天前
    @justyy 不过我感觉即使去了伦敦 amazon,package 和生活不一定有你在 cambridge 过的爽啊。。。
        71
    justyy   225 天前
    @helloworld000 对的,现在在剑桥很爽。955,下午 4-5 点下班前 洗澡喝茶,周五中午公司还有足球,很爽。
        72
    pengliheng   210 天前
    你专跳 easy 的来刷, 难刷的马上跳过, 看一眼想不出答案的立马看答案. 看一眼答案还想不出,直接放弃, next one.

    我觉得刷到 300+可以再看看.....
        73
    feilong569   102 天前
    你这篇文章,写出了很多程序员的心声。大多数程序员(包括我)对算法都是内心有一种恐惧。每次刷题,都是被逼到极点了。
        74
    beizhedenglong   33 天前
    楼主现在啥状态了
        75
    realkenshinji   1 小时 59 分钟前 via iPhone
    @askfilm 国内刷题?你投投国外的公司就知道了,稍微大一点的没有不面算法题的
        76
    realkenshinji   1 小时 54 分钟前 via iPhone
    @justyy 没错,但是大佬你刷的每一个题都铸就了你坚实的基础
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4249 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 77ms · UTC 08:37 · PVG 16:37 · LAX 00:37 · JFK 03:37
    ♥ Do have faith in what you're doing.