• 请不要在回答技术问题时复制粘贴 AI 生成的内容
btv2bt
V2EX  ›  程序员

刷 leetcode 的正确姿势?

  •  
  •   btv2bt · Dec 25, 2019 · 9373 views
    This topic created in 2514 days ago, the information mentioned may be changed or developed.

    迫于找工作,在刷 leetcode,每天晚上能刷 1 到 medium 的题吧;

    但是发现一个问题:稍微麻烦点的就需要半小时以上,接近一个小时,才能写出一个可能还不是很完美的答案。完成后会看一下别人的讨论。 这样一晚上的时间可能就没了……

    所以刷 leetcode 的正确姿势是什么? 有没有什么套路

    41 replies  •  2020-07-08 21:17:06 +08:00
    wangyzj
    wangyzj
    Dec 25, 2019
    1
    半小时一个 medium
    大佬,受我一拜
    btv2bt
    btv2bt
    OP
    Dec 25, 2019 via Android
    2
    @wangyzj 并没有...平均可能 1 小时以上了;写出来的还很丑陋,不然就不来问了 😔
    wangyzj
    wangyzj
    Dec 25, 2019❤️4
    3
    @btv2bt 想过一天也憋不出一个的噩梦么。。。。
    octobersnow
    octobersnow
    Dec 25, 2019 via iPhone
    4
    我觉得,十分钟没思路就看别人的,有思路顺着自己四路写?
    lihongming
    lihongming
    Dec 25, 2019 via iPhone❤️2
    5
    我的方式是——每天解一道题,实在想不出来的就先跳过去,时间太晚了就先到后面找一道 easy 的。总之无论如何,每天确保一道,有个任务,给自己点压力,才能不放弃。

    解法可以不是最优,哪怕 brute force 也得解出来(通常无法直接通过,肯定超时了,但加点缓存,或者跳过明显不可能的情况,优化一下可过)。这样做的目的是,通过以后就可以看别人的答案了。

    看看最优解的思路是什么,理解下来,先不急着模仿,第二天再试着实现。如果还能写出来,这个算法基本上就算学会了,以后遇到类似的题就都会解了。

    如此坚持 100 天,你就会发现,大部分题就是围绕那么十几种思路排列组合,初期那种无从下手的感觉就没那么强烈了(当然还是有少部分题非常新颖,需要学习)。这个阶段就是提高阶段了,虽然是十几种常见思路的排列组合,但哪种组合最优,仍需要经验的积累。
    t9ouKal33vGEZyf5
    t9ouKal33vGEZyf5
    Dec 25, 2019
    6
    关于 LeetCode 如何刷,我之前写了一篇文章,愿与君共勉: https://qoogle.top/how-to-brush-leetcode/
    WhoMercy
    WhoMercy
    Dec 25, 2019 via Android
    7
    @GenialX2
    不知道你现在刷题的进度、学习的程度怎么样了?

    开通了会员还有其他感觉便利的地方吗?(也许等我要面某几家外企的时候会开一下,针对企业的题库来刷刷题
    codewarrior
    codewarrior
    Dec 25, 2019 via Android
    8
    多刷几遍。不要羞于看答案,十分钟想不出来就去看答案。看完思路自己写,写完了再和别人的高分答案对比。第一遍确实很难基本上都要看答案,感觉智商被碾压。做 200 道之后就会慢慢归纳,比如 dfs/bfs 的标准写法,面试遇到这种类似的题比如 count of island 直接动手五分钟写完。
    RtIHZ
    RtIHZ
    Dec 25, 2019
    9
    直接看答案,独立思考没一点用
    shiltian
    shiltian
    Dec 25, 2019 via iPhone
    10
    不会的看答案,然后做完了总结一下,比如写个博文啥的。
    20015jjw
    20015jjw
    Dec 25, 2019 via Android❤️1
    11
    @GenialX2 brush 可还行
    shiji
    shiji
    Dec 25, 2019
    12
    刷到竞赛每次基本都能做完四道题,就可以去大厂面试了。
    fanqianger
    fanqianger
    Dec 25, 2019
    13
    可以参考我的视频,希望对你有帮助
    &lc=z23aujfjltb0cvs3zacdp432fqfe1bijk0v2p1ikutdw03c010c
    mcrwayfun
    mcrwayfun
    Dec 25, 2019 via iPhone
    14
    梳理问题,独立思考 10 分钟。10 分钟后得不到正确答案就看解答,按照正确的把流程写完。最好是一类题来刷,形成解题思路
    kevindu
    kevindu
    Dec 25, 2019
    15
    leetcode 解题思路就那么多,都是套路,慢慢总结吧
    charlie21
    charlie21
    Dec 25, 2019 via Android
    16
    理解了 xx 之后,yy 就好做了。去理解 xx 先,那么。xx 是存在的
    yukiloh
    yukiloh
    Dec 25, 2019 via Android❤️1
    17
    最可怕的是看了最优解都不知道他在说啥
    tt67wq
    tt67wq
    Dec 25, 2019
    18
    楼主可以去刷 euler project
    一个月一题
    likefly
    likefly
    Dec 25, 2019
    19
    我都是一天一道题,花半天自己想和优化,再花半天去理解更好的解题方式并自己融会贯通
    realkenshinji
    realkenshinji
    Dec 25, 2019 via iPhone
    20
    正常的,一开始会特别慢,刷一阵子就好了,刷题累了可以看看 b 站花花酱的视频,总结了一些模版套路啥的
    rrubick
    rrubick
    Dec 25, 2019
    21
    楼上的是都开了会员吗看答案?
    btv2bt
    btv2bt
    OP
    Dec 25, 2019
    22
    @wangyzj 这种情况还是有的……一般 hard 的会先掠过
    @lihongming 嗯,我也是每天一道,easy 的或者 medium 的;第二天重新写的这个学到了
    @GenialX2 好的,学习一下
    @codewarrior 10 分钟吗😂
    @RtIHZ 怎么说呢?意思是大部分都是套路,或者需要证明的一些数学思路?
    @shiji 这个还有点距离…
    @fanqianger mark,后面看
    @yukiloh 有些感觉是数学证明……
    @tt67wq 一个月一题?我搜一下
    @likefly 我也是 1 天 1 个…就是觉得一个多小时写出来一个看上去很丑的可能还超时有点蛋疼
    @realkenshinji 我去瞅瞅
    btv2bt
    btv2bt
    OP
    Dec 25, 2019
    23
    @magic3584 一般看讨论区就好吧
    fank99
    fank99
    Dec 25, 2019
    24
    如果之前没太多经验的话,我觉得先过一遍剑指 offer 比较好
    剑指 offer 里的题基本包含了大部分类型,而且难度也不低

    把剑指 offer 里的吃透,再去刷题,就会有原题模型的概念
    会发现很多题都是一个路子,一种模式,只是有不同的变换
    这样来做会好一些
    LeoWA
    LeoWA
    Dec 25, 2019
    25
    只能死命的刷了,不要羞于去看答案
    rrubick
    rrubick
    Dec 25, 2019
    26
    @btv2bt 嗯,我现在还在 explore 里学,那里面有的东西需要会员。。。
    ihavecat
    ihavecat
    Dec 25, 2019
    27
    刚开始我也是这样,后来答案看多了,发现大致就那几种思路,多活学活用就号了
    hehheh
    hehheh
    Dec 25, 2019
    28
    @magic3584 去 discussion 也可以看到其他人的解法。
    hehheh
    hehheh
    Dec 25, 2019
    29
    前 200 道不懂看答案,到后边的话看不懂的题就少了,因为基本套路就那些。
    quadrapop
    quadrapop
    Dec 25, 2019
    30
    刷想写看学
    zke1e
    zke1e
    Dec 25, 2019
    31
    很多 medium 都有一套前置的 easy,可以先刷 easy 再刷 medium。按照一个类型的刷,每个类型刷个几十道就熟悉了,基本上遇到新的几分钟就能写出来。
    RedisMasterNode
    RedisMasterNode
    Dec 25, 2019
    32
    刷 Top 100 Like


    最开始:20 分钟一道 Easy (可能写不出来 /很差的解法),Medium 基本做不了,Hard 基本直接跳过
    这个阶段一般全靠看答案和看 Discussion。很多解法思路都很新颖(对于我来说),然后务必要理解,对自己要要求没有提示的情况下能把思路默写对

    中期:20 分钟一道 Medium,也有不会做的,因为 LC 一般思路不对的话只会越写越混,写到最后越来越长(因为思路不对就会有很多异常的 Case 要手动处理),一般超过 20 分钟直接去看答案了,还是一样的要求要理解

    现在:刷过 100 道了,现在 Medium 没见过的一般 20 分钟能够写出正确解,优解看脸,平均保持 Python 用时能过 70%。少量情况第一次就能直接过 90%。Hard 的题一般比较难想对,做出来就可以,不用要求太高,但是做不做得出来都要去核对优解的方案,实践一次
    RedisMasterNode
    RedisMasterNode
    Dec 25, 2019❤️1
    33
    然后补充一下求职前的一段时间每天保持 5 道题左右的时间应该差不多,需要积累一些刷题的熟练度,包括一些定式,比如 DP、DFS 这种都是固定的格式,要可以快速流畅地敲出来,然后补充核心部分。5 道题可以是 3 道新的,2 道昨天做不出来的复习一下这样搭配。

    如果是还没毕业的应该每天会有更多时间,抽 2 小时出来 5 道题绰绰有余
    jingcoco
    jingcoco
    Dec 25, 2019
    34
    大神们如何评论 codewars 的呢?
    sethverlo
    sethverlo
    Dec 25, 2019
    35
    一晚上一道 medium 还嫌慢,退群了……
    cribug8080
    cribug8080
    Dec 25, 2019
    36
    刷着刷着就快了
    fishofcat
    fishofcat
    Dec 25, 2019
    37
    刷题自己把自己的丑代码写好后再去看题解,尤其很多大神对题目的归类,那是真牛逼!!

    我自己也在刷

    https://github.com/wenxuwan/leetcode
    nanoha
    nanoha
    Dec 25, 2019
    38
    看你目的了 有段时间我无聊就是当作 polybridge 这样的游戏在玩 哪怕一天一个题也挺有意思 纯粹享受思考的乐趣
    mcone
    mcone
    Dec 25, 2019
    39
    @wangyzj 经常憋不出来……
    tonytonychopper
    tonytonychopper
    Dec 26, 2019 via Android
    40
    我刷了两百多道题,现在动归和递归基本能写出来
    geemaple
    geemaple
    Jul 8, 2020
    41
    不停刷就是正确姿势把,多交流,自己 python 和 cpp 的
    https://github.com/geemaple/algorithm
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   904 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 90ms · UTC 20:46 · PVG 04:46 · LAX 12:46 · JFK 15:46
    ♥ Do have faith in what you're doing.