rayingecho
V2EX  ›  LeetCode

准备用 Rust 刷完 Leetcode

  •  
  •   rayingecho ·
    aylei · Jan 21, 2019 · 23252 views
    This topic created in 2849 days ago, the information mentioned may be changed or developed.

    一周前学了一点 Rust 的皮毛, 手头没啥可以实践的项目, 想了想反正自己也没刷过 OJ, 就试试看最有名的 Leetcode.

    没想到一刷就停不下来了, Leetcode 这玩意儿比游戏还毒, 反馈迅速, 快感强烈, 尤其是用 Rust 每次做完之后的运行时间都是 "0 ms","4 ms" 之类的. 看着 Beats 100% 快感油然而生...

    不过也因为 Rust 本身的特性吃了踩了一些坑: 一开始做链表类题目的时候, 因为对 Onwership 理解不到位, 基本是处于被编译器吊打一晚上的状态. 期间还问了一个非常愚蠢的问题, 被狂喷之后又看了一遍 the book 里 ownership 相关的章节才算摸到了一点门道.

    这一周总结下来就是 Leetcode 真好玩(一周没碰 Artifact 了哈哈哈), Rust 真香, 同好可以留言交流.

    最后是项目仓库. 当然目前还只做了 30 题不到, 本来想至少做够 100 题再分享的, 不过项目里写了一点辅助代码来生成题目模板和帮助做本地单测, 寻思着指不定就能帮上谁, 也就厚颜无耻地放链接了:

    github: https://github.com/aylei/leetcode-rust

    16 replies  •  2019-08-09 11:16:37 +08:00
    Sparetire
    Sparetire
    Jan 21, 2019 via Android
    1
    同样也是打算用 Rust 刷题,初学 Rust,刚看完枚举,本以为像当初 C 学完指针和结构体就能写个链表出来,结果发现目前用 Rust 连个链表都写不出。。感觉自己菜破天际。。
    Allianzcortex
    Allianzcortex
    Jan 21, 2019
    2
    我猜不是所有题目都支持 Rust 的(发现 Go 有不支持的,589/590 )
    Vegetable
    Vegetable
    Jan 21, 2019 via iPhone❤️1
    3
    g 胖没想到自己输给了 leetcode
    gimp
    gimp
    Jan 21, 2019
    4
    正好需要,star 了
    trait
    trait
    Jan 21, 2019 via iPhone❤️3
    5
    rust 不对 borrowchecker 有深刻的理解,链表树图刷题劝退属性点满,跟编译器斗争的时间远超算法本身
    leetcode 给的这链表树结构声明太随意,坑比较多,楼主后期可能还会遇到不少,给个 tip,去看下标准库的 take(), swap()和 mem 里的几个方法,会帮你节省时间
    trait
    trait
    Jan 21, 2019 via iPhone❤️1
    6
    还有 refcell rc 这几个智能指针,以及 borrowchecker 两大原则
    Moming
    Moming
    Jan 21, 2019
    7
    感觉刷题不如抄代码能感受新特性……我用 Python 刷到后面就写了几个 snippets 搞定了常用的数据结构,题目样式没有太大的变化。
    Rust 有很多不错的项目,提提 PR 也挺好玩的。
    rayingecho
    rayingecho
    OP
    Jan 21, 2019❤️1
    8
    @Sparetire
    一开始我也是这种感觉, 后来发现 Rust 写链表确实是个坎, 可以看看 [Learning Rust With Entirely Too Many Linked Lists]( https://cglab.ca/~abeinges/blah/too-many-lists/book/)
    rayingecho
    rayingecho
    OP
    Jan 21, 2019
    9
    @gimp
    感谢鼓励
    rayingecho
    rayingecho
    OP
    Jan 21, 2019
    10
    @trait
    不能更赞同, 跟链表斗争能很好地检验对 borrow checker 的理解...
    rayingecho
    rayingecho
    OP
    Jan 21, 2019
    11
    @Moming
    感觉自己太菜了, 看到 rust 项目的 Help Wanted issue 都不太好意思下手
    Moming
    Moming
    Jan 21, 2019
    12
    @rayingecho 同感,很多项目都只有给别人打 call 的份 😂
    sherlockgy
    sherlockgy
    Jan 31, 2019
    13
    谢了!
    lynskylate
    lynskylate
    Jan 31, 2019 via Android
    14
    @trait 好建议,刚开始刷不会 mem:replace,写了一堆 unsafe
    Simula411
    Simula411
    Jun 13, 2019 via Android
    15
    9012 年 6 月了,楼主是那 200 强者之一吗?
    unforgiven
    unforgiven
    Aug 9, 2019
    16
    @trait 正在被劝退的途中,148 题让我要爆炸了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   649 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 23:17 · PVG 07:17 · LAX 15:17 · JFK 18:17
    ♥ Do have faith in what you're doing.