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

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

  •  
  •   langhunws · 61 天前 · 7001 次点击
    这是一个创建于 61 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 多个题还没有及时重刷,该加把劲了~

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @guanghe123 可以出去读个 master,有个 top10 学校的就能拿面试了,到了面试就看个人造化了。
        68
    helloworld000   11 天前
    @justyy 内推也只是帮你拿到面试,后面还是得靠自己。除了 coding,亚麻是非常看重 principle leadership 的,你下次好好准备下这个应该就可以

    https://zhuanlan.zhihu.com/p/43194520
    https://www.jianshu.com/p/c417bf539a61
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2248 人在线   最高记录 4019   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 23ms · UTC 15:02 · PVG 23:02 · LAX 07:02 · JFK 10:02
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1