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

Leetcode 刷题 100 道记录...

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

    刷完 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
    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
    同...新的知识点开拓经常要几个小时去研磨。
    wmc
        41
    wmc  
       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
    给大佬递茶。
    xiadong1994
        64
    xiadong1994  
       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   ·   我们的愿景   ·   实用小工具   ·   2635 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 15:50 · PVG 23:50 · LAX 08:50 · JFK 11:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.