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

请问 0 基础如何学习刷题

  •  3
     
  •   richzhu · 2020-11-05 09:50:43 +08:00 · 4781 次点击
    这是一个创建于 1239 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问各位前辈们,0 基础如何学习在 leetcode 中刷题,没有任何计算机的知识,每次看到上面的题,评论里都写着,树,二叉树,链表什么的完全不懂,到现在为止也只能刷刷 easy 中的各种排序算法。。。遇到难题一看评论里人家的答案就感觉原来如此~~ 但是让我自己写,就写不出来,或者要用 N 个多小时才能写出来。。。T_T

    请问大家有没有什么入门数据结构与算法的学习方式,不反感培训、买课,只要是适合 0 基础的,因为想成为一名 go 程序员,所以只要基于 golang 的学习方式都可以的。

    对了 还想问一下,如果目标是刷 medium 难度的题目,数据结构和算法要学到什么程度~~

    感谢各位程序员前辈们的指点~~

    49 条回复    2020-11-09 16:20:00 +08:00
    situyaowan
        1
    situyaowan  
       2020-11-05 10:00:06 +08:00
    同问~~ 占楼关注
    zzzrf
        2
    zzzrf  
       2020-11-05 10:02:09 +08:00
    这个去搜一下有很多资料吧,个人觉得可以先自学一下计算机基础知识,数据结构和算法,如果实在学不会可以考虑培训和报班,对知识有个框架后,后面再自学容易很多
    richzhu
        3
    richzhu  
    OP
       2020-11-05 10:06:38 +08:00
    @zzzrf 是有好多资料,可是都不是那种很系统性的,都是碎片化的,像抖音一样,东一个文档,西一篇文章,导致新手学习起来会感到很焦虑和迷茫。。。
    araraloren
        4
    araraloren  
       2020-11-05 10:08:02 +08:00
    看书就好了,书那么多。。免费 PDF 随便下。。
    qooweds
        5
    qooweds  
       2020-11-05 10:08:55 +08:00
    买一本算法书系统的看看
    比如说 https://book.douban.com/subject/19952400/
    lemonnTr
        6
    lemonnTr  
       2020-11-05 10:13:31 +08:00
    没有任何计算机的知识。
    为什么不想着先系统得学习一下基础,而是想着先刷题呢?
    supercaizehua
        7
    supercaizehua  
       2020-11-05 10:18:00 +08:00
    建议关注 labuladong 的公众号
    asdf2020
        8
    asdf2020  
       2020-11-05 10:18:19 +08:00
    [极客时间 数据结构与算法优惠购买]( https://time.geekbang.org/column/intro/126?tab=catalog&code=PwGMePbO-oBZQECwPc6vx0f5J6mjEiBj7gkZF9ig-ko%3D&utm_term=SPoster)

    [极客时间 算法面试通关 40 讲]( https://time.geekbang.org/course/intro/130?code=eh3BHyG3lG7AVgwxWXsSgvRJZROaofNh-bg7Fu7lHU4%3D&utm_term=SPoster)

    可以先学基础知识和理论,不要一口吃成胖子看推导过程,极客时间的上面两个算法课还算良心
    richzhu
        9
    richzhu  
    OP
       2020-11-05 10:19:35 +08:00
    @lemonnTr 现在就是在向您咨询如何学习基础呀
    richzhu
        10
    richzhu  
    OP
       2020-11-05 10:19:51 +08:00
    @supercaizehua 1 现在就去关注
    fiveelementgid
        11
    fiveelementgid  
       2020-11-05 10:20:04 +08:00 via Android
    @lemonnTr 为了工作吧
    jmc891205
        12
    jmc891205  
       2020-11-05 10:21:11 +08:00
    算法第 4 版和配套 MOOC 入门
    CLRS 和 TAOCP 进阶
    locoz
        13
    locoz  
       2020-11-05 10:23:57 +08:00 via Android
    如果你完全 0 基础的话,可以直接先看一遍「软考-初级-程序员」的书,那个里面的基础类知识很全面,基本的数据结构、算法也有,还有个考试给你验证自己的能力…
    binux
        14
    binux  
       2020-11-05 10:26:14 +08:00 via Android
    找科班的教材看一遍呗
    wysnylc
        15
    wysnylc  
       2020-11-05 10:39:36 +08:00
    数据结构的顶级只有两个数组和链表,你先搞懂这俩是什么再说
    pengyOne
        16
    pengyOne  
       2020-11-05 10:52:20 +08:00
    慕课网有这方面的教程。。。按着那个来问题应该不大
    dbsquirrel
        17
    dbsquirrel  
       2020-11-05 10:54:00 +08:00 via iPhone
    Cielsky
        18
    Cielsky  
       2020-11-05 11:08:54 +08:00 via Android
    浙大的数据结构课看着还不错,可以去 mooc 上看看
    khalit
        19
    khalit  
       2020-11-05 11:42:59 +08:00
    关注
    rodrick
        20
    rodrick  
       2020-11-05 12:51:53 +08:00
    借楼问问你们 leetcode 是按照什么顺序刷的
    ericgui
        21
    ericgui  
       2020-11-05 13:03:09 +08:00
    https://space.bilibili.com/9099840

    有人评论我讲的 leetcode 解题视频很适合入门

    我觉得说的对,😝

    来推销一下
    ericgui
        22
    ericgui  
       2020-11-05 13:06:25 +08:00
    @rodrick 按类型刷,比如数组,字符串,回溯,二叉树
    renmu123
        23
    renmu123  
       2020-11-05 13:17:22 +08:00
    找本 c 语言教材过一遍,找本数据结构教材过一遍,如果是零基这个过程会比较痛苦
    hello2060
        24
    hello2060  
       2020-11-05 13:18:10 +08:00 via iPhone
    0 基础能搞定 leetcode 的题,哪怕是 easy 你也挺厉害了
    raaaaaar
        25
    raaaaaar  
       2020-11-05 13:19:31 +08:00 via Android
    先学一遍最基础的数据结构和算法,这个过程要花好几个月,学完后再大量刷题。
    richzhu
        26
    richzhu  
    OP
       2020-11-05 13:40:17 +08:00
    @ericgui 谢谢大佬,您讲的好透彻啊,虽然是 JAVA 版~~~ 不过听完之后,可以用 go 写出来
    ericgui
        27
    ericgui  
       2020-11-05 13:53:10 +08:00
    @richzhu 谢谢哈,喜欢就好,把我推荐给别人哈
    ericgui
        28
    ericgui  
       2020-11-05 13:54:32 +08:00
    @raaaaaar 不用,直接刷题,写不出来就直接看代码,从简单题做起
    rodrick
        29
    rodrick  
       2020-11-05 15:00:50 +08:00
    @ericgui 请问你一般刷一个类型的时候是刷个一部分比如十几道然后换下个类型刷这样么,我感觉一个类型内好多,刷完一个类型花费时间太久了
    fank99
        30
    fank99  
       2020-11-05 15:05:57 +08:00
    买本图解算法来看,搞清楚各个数据结构和算法的基本原理并且能手写代码
    然后开始刷题,直接按 hot 100 剑指 offer 这样的 tag 来刷。
    charlie21
        31
    charlie21  
       2020-11-05 15:48:12 +08:00
    数据结构和算法,讲师小甲鱼,教材程杰《大话数据结构》
    https://fishc.com.cn/thread-1053-1-1.html
    ThinkTwive
        32
    ThinkTwive  
       2020-11-05 15:56:27 +08:00
    我最近刚开始也在刷题,基本也是零基础,我就是先看看书,明白了各种数据结构是个什么东西,然后就开始刷简单题,就是先只做一个类型的,比如链表,第一次做都不会,看了答案理解了,然后自己写一遍,做着做着,慢慢了解了链表的题目一般怎么搞(一般就是快慢指针,双指针),慢慢自己就可以不看答案做出简单题了,我觉得我坚持下去的话应该能慢慢自己做出 medium 的题~我也是小白,我暂时是这么想的做的,一起进步吧
    buildsth
        33
    buildsth  
       2020-11-05 15:57:44 +08:00
    起码需要知道数据结构,定义一类的,然后再刷题也不迟
    HarryQu
        34
    HarryQu  
       2020-11-05 16:28:46 +08:00
    别走弯路了,我工作三年的时候,连数组和链表都分不清!数据结构和算法一窍不通,每次学到一半就放弃了,一度怀疑自己是个智障,后来发现自己的学习方法不对。

    我是半路出家的程序员,数据结构和算法这类知识看书是不行的!至少对于非科班的大部分同学都是不行的,这些知识,一定要看视频以及动态图,这样能够直观的发现代码写法变化的原理。

    不要一边刷题,一边学习,这样很浪费时间的。基础不牢,地动山摇!

    先稳固基础,再去 leetcode 刷题,这样会事半功倍。

    视频我推荐你看慕课网的 liuyubobobo

    https://www.imooc.com/t/108955#Course 你是自己买,还是直接搜索免费的都可以,他以前有 Java 课程,应该是被他下架了,现在是整合的 Java 体系版本,不过旧课程仍旧可以搜得到。

    书籍的话看算法第四版吧,我这里有个 pdf 带书签版本的,还有书本源码 :

    下载链接 : https://pan.baidu.com/s/1ZnyQW2j9uLcfXc25KFrxSA 密码:rb5s

    Github 源码地址如下: https://github.com/kevin-wayne/algs4
    chamuyaye
        35
    chamuyaye  
       2020-11-05 16:33:22 +08:00
    留言记录下
    XDJI
        36
    XDJI  
       2020-11-05 16:40:43 +08:00
    直接背字母==!
    richzhu
        37
    richzhu  
    OP
       2020-11-05 16:41:39 +08:00
    @HarryQu 感谢大佬,说到我心坎里了,半路出家程序员真心不容易,我去搜一下您说的课程,如果有资源也求大佬可以分享一下~~再次感谢
    richzhu
        38
    richzhu  
    OP
       2020-11-05 16:42:53 +08:00
    @ThinkTwive 谢谢分享,对我很有帮助,我现在刷题很盲目,只是单纯的找 easy,看来还是要刷熟练一个数据结构之后再换另一个刷
    b1ackjack
        39
    b1ackjack  
       2020-11-05 16:45:42 +08:00
    建议半路出家的同学,最好了解一些基本的数据结构算法,操作系统,计算机网络知识
    onfuns
        40
    onfuns  
       2020-11-05 16:53:20 +08:00
    没基础看算法没用,先把数据结构的书看一遍,至少知道一些结构和名词吧,然后再刷就会慢慢有头路了。
    RedBeanIce
        41
    RedBeanIce  
       2020-11-05 16:56:03 +08:00
    如果你是学生,请将科班的课程来一遍。
    如果你已经毕业 2-3 年,如果你是后端,请把数据结构与算法,学到二叉树,同时要了解 AVL 树的旋转。
    如果你毕业好几年。。。。。。我也不知道
    如果你是学前端,我也不知道。
    RedBeanIce
        42
    RedBeanIce  
       2020-11-05 16:56:50 +08:00   ❤️ 1
    看到你是 GO,那么直接看

    如果你是学生,请将科班的课程来一遍。
    如果你已经毕业 2-3 年,如果你是后端,请把数据结构与算法,学到二叉树,同时要了解 AVL 树的旋转。
    RedBeanIce
        43
    RedBeanIce  
       2020-11-05 17:01:23 +08:00
    avl tree 与 tree

    https://github.com/WarriorFromLongAgo/xuegao_leetcode/tree/master/leetcode/src/main/java/com/xuegao/tree

    链表和线表( arrayList linkedList )
    可以直接看 Java 的源码

    最后,请自己手动写一遍,手搓数据结构应该是必须的吧,可能需要好几个月才可以手搓完成
    richzhu
        44
    richzhu  
    OP
       2020-11-05 17:36:13 +08:00
    @onfuns @b1ackjack 谢谢,问的就是如何学习数据结构与算法呢
    richzhu
        45
    richzhu  
    OP
       2020-11-05 17:36:23 +08:00
    @RedBeanIce 感谢,记下来了
    ShuoHui
        46
    ShuoHui  
       2020-11-05 17:37:52 +08:00 via iPhone
    0 基础还是补点知识吧…不然你刷题的意义在哪里
    richzhu
        47
    richzhu  
    OP
       2020-11-05 17:51:05 +08:00
    @ShuoHui 就是在发帖问如何补知识呢
    ericgui
        48
    ericgui  
       2020-11-06 00:00:56 +08:00
    @rodrick 把这个类型里的所有简单题,以及大部分中等题都搞明白就行了

    某些中等题其实挺难

    困难题就算了,量力而行即可。
    duzhanguan
        49
    duzhanguan  
       2020-11-09 16:20:00 +08:00
    转行路过,当时看的是邓俊辉的网课和书,并且把他的习题做了一遍,最后找工作的时候 LC 刷了 600 (现在应该有 800 了吧)。但并不推荐这样,因为邓俊辉的习题很多需要形式化证明,但既然他的看懂了,基本算法可以横行无阻。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3943 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 10:22 · PVG 18:22 · LAX 03:22 · JFK 06:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.