Leetcode 刷题 100 道记录... - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cyrbuzz
V2EX    LeetCode

Leetcode 刷题 100 道记录...

  •  3
     
  •   cyrbuzz
    HuberTRoy 2018-09-20 20:07:08 +08:00 20113 次点击
    这是一个创建于 2581 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刷完 100 道明显感觉逻辑上有了进步,写起来代码来更容易 free bug。 一开始刷 easy 和 medium,一道题要研究好一段时间,以 easy 为主,medium 为辅,hard 基本做不出来。 刷过一段时间后 easy 的感觉都比较简单,medium 的大部分也能在较短的时间内完成,hard 也可以尝试性做一下。 easy 现阶段基本可以当做要做题的 零启动任务。现做个难度不大的 easy,可以很快进入思考状态。

    contest 平均 4 道题能做上来 2~3 个吧。contest 排名靠前的人都好厉害...感觉就算刷完了所有题也赶不上的样子..

    喔对,用 Python 刷的,根据每道题的分类放到 Github 上了。 包括自己的思路,从 Wrong answer 到 Accepted,从 TLE 到 Accepted 的历程,结合 Discuss 里的高票答案给出的翻译消化等。有需要的小伙伴可以看一下~。

    https://github.com/HuberTRoy/leetCode

    87 条回复    2018-09-28 19:28:33 +08:00
    83f420984
        1
    83f420984  
       2018-09-20 20:08:27 +08:00 via iPhone   1
    0 - 100 我用 JS 刷了三个月
    cyrbuzz
        2
    cyrbuzz  
    OP
       2018-09-20 20:09:57 +08:00
    @83f420984
    稍快一点...用了两个月。
    Raisu
        3
    Raisu  
       2018-09-20 20:11:06 +08:00 via Android
    我一个月多点。。。100 道,就是上班太忙会没时间刷
    Raisu
        4
    Raisu  
       2018-09-20 20:12:28 +08:00 via Android   1
    知乎有人累计 12 小时 75 道,简直可怕
    cyrbuzz
        5
    cyrbuzz  
    OP
       2018-09-20 20:14:32 +08:00
    @Raisu
    那可真厉害...能 12 个小时保持专注状态。
    k9ox
        6
    k9ox  
       2018-09-20 20:38:49 +08:00 via Android
    哈哈还是你们,我一般题目看个 2 分钟没思路就直奔讨论区看现成答案了
    matrix1010
        7
    matrix1010  
       2018-09-20 21:13:03 +08:00 via Android   1
    厉害,我睡前看个十来分钟眼睛就睁不开了
    moresteam
        8
    moresteam  
       2018-09-20 21:14:09 +08:00 via Android
    刷了十几道才,目前
    KNOX
        9
    KNOX  
       2018-09-20 21:24:41 +08:00 via Android
    请教下怎么上手刷题?我的算法和数据结构基础不好。
    xxx749
        10
    xxx749  
       2018-09-20 21:36:36 +08:00 via Android
    leetcode 和其他 oj 比,刷哪个比较好
    cyrbuzz
        11
    cyrbuzz  
    OP
       2018-09-20 22:30:29 +08:00
    @k9ox
    2 分钟...
    cyrbuzz
        12
    cyrbuzz  
    OP
       2018-09-20 22:31:43 +08:00
    @matrix1010
    周末有 contest.
    cyrbuzz
        13
    cyrbuzz  
    OP
       2018-09-20 22:31:59 +08:00
    @moresteam
    一起进步啦~。
    cyrbuzz
        14
    cyrbuzz  
    OP
       2018-09-20 22:38:06 +08:00   1
    @KNOX
    我的话一开始看书,做 easy 的,一开始不管实现的时间复杂度空间复杂度多高有思路就写一下,自己线下测试。然后去 Discuss 里看高票的讨论,根据高票讨论来学习改进。之后就是多刷几个同样的题,比如一开始的 Dp 类型的完全不会,先找初级资料入下门,再去 leetcode 上根据分类筛选后做 easy,有了一定理解做 medium, hard,做不出来就看一下 Discuss,反复几次就有一个较为清晰的思路去解决某一类型的问题。
    cyrbuzz
        15
    cyrbuzz  
    OP
       2018-09-20 22:38:30 +08:00
    @xxx749
    没用过其他的哎。Leetcode 用着挺不错的。
    shdcn
        16
    shdcn  
       2018-09-20 22:40:12 +08:00
    大家一般刷什么难度的啊,我一般都 medium..
    KNOX
        17
    KNOX  
       2018-09-20 22:41:15 +08:00 via Android
    @cyrbuzz 楼主你的 @ 有空格我收不到提醒不过幸好再点进来看看,谢谢指导~
    d18
        18
    d18  
       2018-09-20 22:47:35 +08:00
    leetcode 改版了,好不适应,编辑区太小了。
    ayyll
        19
    ayyll  
       2018-09-20 22:48:34 +08:00 via Android
    contest 一般能 ak(当然排名肯定不高啦,毕竟菜鸡 A 的太慢了)。。。感觉周赛难度一般般吧 毕竟竞赛性质比较弱 感觉用 python 不如 c++舒服。。。额 也可能是母语的关系吧。。
    easylee
        20
    easylee  
       2018-09-20 23:03:27 +08:00 via Android
    我一道题能写五小时……
    aihidao
        21
    aihidao  
       2018-09-20 23:11:35 +08:00 via Android   3
    @easylee 按解决率排,从简单的来,这样才会阶梯性上升。类似打游戏。
    easylee
        22
    easylee  
       2018-09-20 23:18:49 +08:00 via Android
    @aihidao 多谢指导。

    可是里面的大部分题目都非常值得推敲呀,我个人认为写算法题重在优化各种细节,如果单纯为了过还不如参加算法大赛去……
    goodniuniu
        23
    goodniuniu  
       2018-09-20 23:22:37 +08:00
    @cyrbuzz 谢谢分析,是看哪些书呢?
    sylxjtu
        24
    sylxjtu  
       2018-09-21 00:12:13 +08:00 via Android
    @shdcn 完全按照顺序刷,碰到非算法题就跳过,现在刷了 200 多道
    ericgui
        25/div>
    ericgui  
       2018-09-21 00:39:06 +08:00   1
    一刷肯定慢

    可以二刷
    bluebluecos
        26
    bluebluecos  
       2018-09-21 00:50:35 +08:00   1
    真棒呀~
    正在刷.
    sdushn
        27
    sdushn  
       2018-09-21 00:58:21 +08:00 via Android
    战略性 mark
    rabbbit
        28
    rabbbit  
       2018-09-21 01:23:35 +08:00
    我也刷了差不多 100 道吧,不过是按顺序来的(两种语言写的)
    js 的话推荐 vscode,有自动刷新的插件,很方便(python 好像也有,不过没有过)
    非常好玩的一点,有些题用 js 实现能上 95%,原封不动搬到 python 连 30%都不到
    whalegia
        29
    whalegia  
       2018-09-21 01:55:10 +08:00
    lihongming
        30
    lihongming  
       2018-09-21 02:02:58 +08:00 via iPhone   8
    刚刷两周,按题号顺序走的,每天无论多忙,保证至少刷一题,否则不睡觉,临近 0 点还没完就挑个 easy 的先凑数……
    时间充裕的话就看看更优解,把思路记下来,第二天再自己写一遍,这样就变成自己的知识了。
    现在感觉自己每天都在进步,特别爽。
    allan888
        31
    allan888  
       2018-09-21 02:53:42 +08:00 via Android   1
    应该是 bug free 不是 free bug....
    KnightYoung
        32
    KnightYoung  
       2018-09-21 04:36:45 +08:00 via iPhone
    你们刷题用的是国际站还是中国站,具体有啥区别吗?
    YingJie
        33
    YingJie  
       2018-09-21 08:08:26 +08:00 via Android
    @KnightYoung 一个中文显示一个英文显示而已。
    jerry12547
        34
    jerry12547  
       2018-09-21 08:55:40 +08:00
    第二道 就卡住了。。
    mrzou007
        35
    mrzou007  
       2018-09-21 09:05:25 +08:00
    战略性 Mark。。。。。。。。。。。。。。。。
    cyrbuzz
        36
    cyrbuzz  
    OP
       2018-09-21 09:20:08 +08:00
    @shdcn
    我是先 easy 进入状态,medium 感觉有的特别简单,有的又特别难..跨度有点大,万一一下子搞个难点的...一直嗑脑袋昏昏的...
    cyrbuzz
        37
    cyrbuzz  
    OP
       2018-09-21 09:20:45 +08:00
    @KNOX 没注意过哎...这次不带空格了。
    cyrbuzz
        38
    cyrbuzz  
    OP
       2018-09-21 09:21:04 +08:00
    @d18
    好像能全屏写?
    cyrbuzz
        39
    cyrbuzz  
    OP
       2018-09-21 09:22:56 +08:00
    @ayyll
    感觉 contest 更像是阶段性测试学习成果..慢慢进步感觉很爽。Python 有些特性用起来很方便~
    cyrbuzz
        40
    cyrbuzz  
    OP
       2018-09-21 09:25:13 +08:00
    @easylee
    同...新的知识点开拓经常要几个小时去研磨。
    39Sc06lk7Khhc4qV
        41
    39Sc06lk7Khhc4qV  
       2018-09-21 09:29:41 +08:00
    最近刚开始刷,刷了大概三十道 easy,感觉很艰难。。。
    cyrbuzz
        42
    cyrbuzz  
    OP
       2018-09-21 09:31:33 +08:00   1
    @goodniuniu
    我一开始看的
    算法基础:打开算法之门 http://product.dangdang.com/23829589.html
    之后又翻了翻 算法 第四版 https://book.douban.com/subject/10432347/
    我是先看个大概,知道每一节讲什么内容,有一个框架出来,然后找一些类似的问题去填充知识点,有盲点就再回去查书,Google.

    Dp 的话入门看了这篇文章: http://www.hawstein.com/posts/dp-novice-to-advanced.html

    还订阅了一下 Daily coding problem: https://www.dailycodingproblem.com/
    每天推送一道题,不含答案,含答案要另付费。
    realkenshinji
        43
    realkenshinji  
       2018-09-21 09:33:20 +08:00
    @83f420984 有 github po 一个么?
    realkenshinji
        44
    realkenshinji  
       2018-09-21 09:34:20 +08:00
    @cyrbuzz 赞分享,我也是 dp 很弱的说。。。
    cyrbuzz
        45
    cyrbuzz  
    OP
       2018-09-21 09:34:31 +08:00
    @rabbbit
    有一些坑吧~比如 Python 2 里要用 xrange 代替 range..
    zhangyichent
        46
    zhangyichent  
       2018-09-21 09:35:11 +08:00
    你们都在英文版刷的?
    realkenshinji
        47
    realkenshinji  
       2018-09-21 09:35:47 +08:00
    @easylee 什么难度的花 5 小时?我以前在 codility 上面刷题,一般也是 1 个题能搞上 1-2 小时 :(
    cyrbuzz
        48
    cyrbuzz  
    OP
       2018-09-21 09:35:51 +08:00
    @allan888
    o( ̄ ̄)d 感谢指正...
    realkenshinji
        49
    realkenshinji  
       2018-09-21 09:36:54 +08:00
    @rabbbit vs code 自动刷新插件是啥?
    smeraldo
        50
    smeraldo  
       2018-09-21 09:46:05 +08:00
    刚开始刷,有些题要想好久。。如果一道题几个小时没做出来的话应该怎么办?应该看答案吗?
    littleWinter
        51
    littleWinter  
       2018-09-21 09:47:02 +08:00
    楼主厉害了 我刷了 2-3 年 零零散散做了才 70 道题,
    83f420984
        52
    83f420984  
       2018-09-21 09:48:31 +08:00
    easylee
        53
    easylee  
       2018-09-21 09:51:21 +08:00 via Android
    @realkenshinji 我写的不难不难,只是想做到最优解,然后发现,很多题都不可能,因为数据早就变了,以前投机取巧的代码才能第一。
    ylsc633
        54
    ylsc633  
       2018-09-21 10:16:17 +08:00
    厉害..

    我一个多月 用 golang 刷 才 20+ 题
    Anshi
        55
    Anshi  
       2018-09-21 10:17:59 +08:00   1
    @smeraldo 看啊,一个小时做不出来,再给你几天也未必能 [较好] 的做出来, 很多题目的一些套路都是一些大人物的数学成果,就好像让你不学三角形定理去证明两个三角形全等,只会束手无策。 看答案注意看的不是答案,是解题的方法。
    bluefalconjun
        56
    bluefalconjun  
       2018-09-21 10:29:08 +08:00   1
    吐槽一下 leecode 里面的 go 语言刷题
    1. 题库不全 不是所有题都有 go 实现.
    2. 编辑器 /编译输出不是太稳定 有时候更新了代码 编译错误不在指定行上面.
    3. 居然不附带一个编译时候自动 gofmt 还要自己拉回来在 vscode 上 save/auto fmt 一把 (代码格式控...)
    ifconfig
        57
    ifconfig  
       2018-09-21 11:12:58 +08:00
    不会数据结构可以刷题吗?
    Ayun
        58
    Ayun  
       2018-09-21 11:41:56 +08:00
    看见没,上面的都是大佬
    cyrbuzz
        59
    cyrbuzz  
    OP
       2018-09-21 12:40:36 +08:00
    @smeraldo
    我的话,一般会看,看答案的过程分成好几步:
    1. 是不是思路问题,先看 Discuss 里的标题。比如自己用 DP 搞了半天没搞出来,Discuss 有人发 BFS 思路,就先朝着 BFS 思考一番。
    2. 如果思路与 Discuss 高票大佬一致,就去看里面的解释,根据解释,自己摸索着写代码,这个过程反复几次,比如某个地方眼前一亮就上手写了,发现写不出来就再回去看...
    3. 看了解释还不写不出来就只能先看下代码,尝试理解...理解不了就去做其他类型的题,回头再看这题。
    smeraldo
        60
    smeraldo  
       2018-09-21 13:18:52 +08:00
    @Anshi 现在碰到很久解不出的题会去算法书里寻找思路,其实效率不算很高。但是我觉得自己如果不能从书里面得到自己的答案的话,可能这道题还不适合现在去解决,就跳过了(所以跳了不少题 233
    smeraldo
        61
    smeraldo  
       2018-09-21 13:23:06 +08:00
    @cyrbuzz 自己写的话就算是同一个思路和别人也不太一样。看了别人的解会下意识去背别人的想法或代码,总感觉不是自己的,所以对看讨论稍微有些抵触。可能还是懒得深入思考吧。。
    cyrbuzz
        62
    cyrbuzz  
    OP
       2018-09-21 13:36:45 +08:00
    @ifconfig
    应该不能吧...不认识字当然也不可能看的懂书。
    cyrbuzz
        63
    cyrbuzz  
    OP
       2018-09-21 13:37:09 +08:00
    @Ayun
    给大佬递茶。
    trn4
        64
    trn4  
       2018-09-21 13:40:57 +08:00 via iPhone
    我第一次做 leetcode 还是 14 年的时候,当时只有 200 题左右,还基本不怎么有新题,当时还想着哪天能全做一遍,哪像现在一周四道新题。现在上班了,只有周末做做 contest,根本赶不上出题速度,刚看了一眼竟然有 300 多题没做了……
    刷 LC 上的题,就是量的问题,90%的题目都非常套路,都可分到十几种左右的类别里面。刷多了的好处是看题目就有一种直觉 /经验让你快速缩小解法范围。
    ACool
        65
    ACool  
       2018-09-21 14:31:44 +08:00 via Android
    现在一天刷 2 ~ 4 道,基本上每天坚持,偶尔周末空一天,用 c++刷的,按照类别来刷的,数组,字符串等等,https://github.com/starFalll/LeetCode
    d18
        66
    d18  
       2018-09-21 14:32:02 +08:00   1
    @bluefalconjun go 刷题有个劣势,你打败了 100%的人,可能不是因为你的代码写得好,而是因为只有你一个人用 go 提交......
    ekoeko
        67
    ekoeko  
       2018-09-21 14:36:56 +08:00
    @cyrbuzz 我也刷了 50 多道 medium 了,感觉现在做算法题有一定套路了,但是去面试发现算法题目都很简单,好多都问分布式的问题比如:zookeeper、Spring cloud、mq 之类的问题,然后现在的工作也没用到,不知道楼主是怎么学习这方面的知识的?
    Nagisa1992
        68
    Nagisa1992  
       2018-09-21 14:52:49 +08:00
    也是最近开始刷,ac 了几十道了吧,顺便 po 一下我的解题记录:
    https://github.com/gytHW/leetcode
    loryyang
        69
    loryyang  
       2018-09-21 15:58:28 +08:00
    据说去 FLAG 面试,怎么着也得刷个两遍吧,我就刷了小 200 题,所以还在国内 -.-
    loryyang
        70
    loryyang  
       2018-09-21 15:59:58 +08:00   1
    多说一句,刷题不是 AC 就完了,还要认真看下 discussion 里面的各种解题思路,即使是效率低的算法也要理解,最好写一遍
    然后你 AC 了,可以看到别的 submit 的时间,看看比你快的是怎么写的,学习一下,最好也再写一遍
    douya0808
        71
    douya0808  
       2018-09-21 16:58:50 +08:00
    现在在刷简单,平均一道题就要想一天,比较尴尬
    JerryZou
        72
    JerryZou  
       2018-09-21 17:04:48 +08:00
    @d18 中间栏可以拖拽 resize。后面会推出 zen 模式的,可以期待一下 :P
    d18
        73
    d18  
       2018-09-21 17:23:19 +08:00
    @JerryZou resize 了依旧很小,不过我刚发现在个人设置里可以返回旧版。
    JerryZou
        74
    JerryZou  
       2018-09-21 19:51:50 +08:00 via Android
    @d18 嗯,目前在测试阶段。后面会持续改进的!
    fishofcat
        75
    fishofcat  
       2018-09-21 23:24:24 +08:00
    我也在刷,用的 go 语

    https://github.com/wenxuwan/leetcode

    不过我是按照 leetcode 中国上面的分类刷的
    cyrbuzz
        76
    cyrbuzz  
    OP
       2018-09-22 12:39:31 +08:00
    @loryyang
    没错... 有的题 AC 了也还要研究下,像是 97 题
    https://leetcode.com/problems/interleaving-string/description/

    Discuss 里的高票 BFS 解法就非常值得推敲一下,而且这个题测试数据好像不全面...当时写的解法能 beat 82%,但线下测试时发现有一种会导致 TLE 的测试数据。
    cyrbuzz
        77
    cyrbuzz  
    OP
       2018-09-22 12:40:06 +08:00
    @douya0808
    一开始都会比较困难的吧...大神除外..
    Yyyye
        78
    Yyyye  
       2018-09-23 07:04:56 +08:00
    战略 mark,60+的水平
    whalegia
        79
    whalegia  
       2018-09-25 14:18:54 +08:00
    @cyrbuzz 哇那你可以 contribute test case 啊
    cyrbuzz
        80
    cyrbuzz  
    OP
       2018-09-25 20:47:11 +08:00
    @whalegia
    有的,不过没人回复...
    whalegia
        81
    whalegia  
       2018-09-26 01:05:53 +08:00
    @cyrbuzz 能发我你的 test case 吗?我也想跑一下我的解法
    cyrbuzz
        82
    cyrbuzz  
    OP
       2018-09-26 08:42:22 +08:00   1
    @whalegia
    嗯,就是
    `s1 = s2`
    `s3 = s1+s2`的情况。
    我是把`s1` 和 `s2` 各设为 500 个 `c`,s3 则是 1000 个 `c`。

    高票的 c++ with BFS 用这个栗子需要 1000+ms 才能跑完,Dp 的可以正常完成..
    发在后面的 Discuss 里了。
    https://leetcode.com/problems/interleaving-string/discuss/155996/missing-test-case
    whalegia
        83
    whalegia  
       2018-09-26 13:00:49 +08:00   1
    你可以直接用这个 link 交 test case ? https://leetcode.com/contribute/testcases/question
    cyrbuzz
        84
    cyrbuzz  
    OP
       2018-09-26 13:15:38 +08:00
    @whalegia
    已提交,谢谢。
    bluefalconjun
        85
    bluefalconjun  
       2018-09-27 13:29:21 +08:00
    @d18 应该以后会有人做吧... 哈哈
    ltoddy
        86
    ltoddy  
       2018-09-27 14:19:48 +08:00
    https://github.com/ltoddy/leetcode

    两个月两百道......
    cyrbuzz
        87
    cyrbuzz  
    OP
       2018-09-28 19:28:33 +08:00
    @ltoddy
    膜拜大佬。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     987 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 22:36 PVG 06:36 LAX 15:36 JFK 18:36
    Do have faith in what you're doing.
    ubao 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