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

leetcode 的算法题,难度是简单的,都做不出来

  •  1
     
  •   kikione · 2020-09-09 12:06:26 +08:00 · 11924 次点击
    这是一个创建于 1540 天前的主题,其中的信息可能已经有所发展或是发生改变。

    leetcode 的算法题,难度是简单的,都做不出来。 我有点怀疑人生

    75 条回复    2020-09-11 22:10:38 +08:00
    sigma65535
        1
    sigma65535  
       2020-09-09 12:08:35 +08:00 via Android   ❤️ 1
    做不出来,看答案,当例题。下次就会了
    raaaaaar
        2
    raaaaaar  
       2020-09-09 12:18:37 +08:00 via Android   ❤️ 11
    我的目的不是做出来题,而是分析用了什么知识,分析怎么用的,分析解题思路,分析优化的可能。
    q8164305
        3
    q8164305  
       2020-09-09 12:20:42 +08:00 via Android
    能看懂并且自己实现一遍就够了啊
    q8164305
        4
    q8164305  
       2020-09-09 12:21:11 +08:00 via Android
    看都看不懂,那就没办法了
    AllenHua
        5
    AllenHua  
       2020-09-09 12:25:41 +08:00   ❤️ 2
    可能还是训练少了

    这东西 也是要题海战术训练的 里面的思想都是可以总结出来的

    做多了 应该会好很多

    楼主没必要怀疑自己 你可以的
    berserk
        6
    berserk  
       2020-09-09 12:27:59 +08:00   ❤️ 1
    @raaaaaar 如果是想学知识,建议看书更系统。《算法导论》来一波。
    momocraft
        7
    momocraft  
       2020-09-09 12:29:31 +08:00   ❤️ 4
    慢慢来
    TypeError
        8
    TypeError  
       2020-09-09 12:29:36 +08:00 via Android   ❤️ 3
    我刚做题也是这样,就是刷的不够,
    同一类型刷个几题,就能明白套路了,
    就是动规、贪心、栈队列、排序、二分、回溯这些模板
    sealingpp
        9
    sealingpp  
       2020-09-09 12:33:50 +08:00
    先买本基本数据结构入门再说
    lights
        10
    lights  
       2020-09-09 12:37:43 +08:00
    简单题暴力解法一般都能做出来,暴力解法都不会的话,建议从买一本基础的数据结构开始

    另外很多简单题有多种解法,那些多出来的更优解是很值得研究和学习的,也很有用
    OHyn
        11
    OHyn  
       2020-09-09 12:44:07 +08:00
    刷的少了。
    多刷,要不练出分析能力,要不练出应试能力,终归会有结果。
    OHyn
        12
    OHyn  
       2020-09-09 12:45:48 +08:00   ❤️ 1
    看书的话可以考虑这个 https://book.douban.com/subject/19952400/,
    书上的看不懂不要硬啃,同类视频多刷一些。
    aminick618
        13
    aminick618  
       2020-09-09 12:54:34 +08:00
    这很正常。先从数据结构开始学习, 然后再把基本算法(二分,递归,dfs 等)搞透彻。 题做多了之后,解题思路无非就是用什么样的数据结构和算法可以比暴力解快,降低时间复杂度。当然不包括有的智力题只能看答案了。
    chihiro2014
        14
    chihiro2014  
       2020-09-09 13:04:13 +08:00   ❤️ 2
    简单的不一定简单,难的真不一定难
    nightwitch
        15
    nightwitch  
       2020-09-09 13:14:31 +08:00
    简单题通常有暴力解法,但是简单题不一定是真的简单,可能会有更高阶的解法。
    有的知识不会就是不会,没什么大不了的,人也不是生来就能算加减乘除。不会做就看答案,确保自己看过答案以后,能理解,能写出来就可以了,刷多了自然就会了
    littlewing
        16
    littlewing  
       2020-09-09 13:19:24 +08:00 via iPhone
    多练习就会了,你会发现变来变去就那么几种方法
    JerryCha
        17
    JerryCha  
       2020-09-09 13:21:03 +08:00
    做得出 HARD 的链表但做不出 EASY 的 DP 也是正常的
    binux
        18
    binux  
       2020-09-09 13:27:30 +08:00 via Android
    @JerryCha leetcode 有 easy 的 dp ?
    cumshot
        19
    cumshot  
       2020-09-09 13:35:35 +08:00
    其实就是做的少,,
    lights
        20
    lights  
       2020-09-09 13:40:35 +08:00
    @binux #18
    真相了,233333
    binxin
        21
    binxin  
       2020-09-09 13:44:59 +08:00
    刷回文字符串,用了一小时把耗时从 920ms 缩短到 720ms
    然后点开一看,别人的马拉车算法只要 70ms....
    bluehr
        22
    bluehr  
       2020-09-09 14:06:32 +08:00
    正常,刚开始都这样,没思路,没经验,一脸懵逼。
    慢慢练习后就会发现很多解题思维都是相通的,再看看别人总结的规律,重点是学习解题的思维。
    这种思维在普通人身上都是练出来的,上来就会得人就那么极少部分天才
    xFrye
        23
    xFrye  
       2020-09-09 14:06:46 +08:00
    刷题是一个学习的过程
    TwoDogSon
        24
    TwoDogSon  
       2020-09-09 14:13:10 +08:00
    我也是这样 换工作被迫捡起来 leetcode 现在尽量坚持每天都刷 想养成个习惯 没什么是理所当然的 宽恕自己一点~
    fishCatcher
        25
    fishCatcher  
       2020-09-09 14:13:50 +08:00 via iPhone   ❤️ 7
    一开始:呜呜呜我不会做
    中期:我要归纳方法,总结方法,做到触类旁通!
    后期:还是背过好使。万物皆背诵
    agegcn
        26
    agegcn  
       2020-09-09 14:23:40 +08:00
    刚开始不会写 正常
    ghost024
        27
    ghost024  
       2020-09-09 14:24:07 +08:00
    没关系,就是解决问题而已,慢慢来就好了,我有的时候一道题能做一天:)
    bonfy
        28
    bonfy  
       2020-09-09 14:28:24 +08:00
    其实就是看你肯花多少时间,当然花了时间大部分也会忘掉一大半的

    你这样也蛮好,至少省了老多时间了
    hikarumx
        29
    hikarumx  
       2020-09-09 15:08:49 +08:00
    先边看边模仿,刷够 1000 再看看
    MatthewHan
        30
    MatthewHan  
       2020-09-09 15:17:49 +08:00   ❤️ 1
    用二叉树入手递归非常不错,二叉树的题要多做一些(本来这类题也多)。bfs 、dfs 迭代模板要记一记。dfs 递归一把梭熟练了之后,排列组合、回溯、一些背包问题也可以用这个了先。
    chanlk
        31
    chanlk  
       2020-09-09 15:48:54 +08:00
    多做题,做不出来就看题解. 按照 TAG 来刷,先是数组 链表 队列和栈 字符串 哈希表这些基础的,把这些 esay 的做的差不多应该就算入门了,然后到 递归 二叉树 回溯 贪心 DP 和一些高级的数据结构. 还是多做题吧,我已经做了 400 题了,media 的题还是有的会卡住,共勉..
    KuroNekoFan
        32
    KuroNekoFan  
       2020-09-09 15:50:15 +08:00
    没有什么问题是一次迭代不能解决的,如果不能,就再迭代一次(
    buffzty
        33
    buffzty  
       2020-09-09 16:17:29 +08:00
    @fishCatcher 几十几百年才出一个天才 优化出一个算法. 我们普通人能看懂并运用这个算法就已经算牛的了. 就像爱因斯坦写出质能方程时能看懂的都是诺奖级别
    gadsavesme
        34
    gadsavesme  
       2020-09-09 17:10:10 +08:00
    别被那个难度忽悠了,很多简单题真的是挺难的,有的中等题和困难题还挺简单的。有时候简单做不出来挺正常的,心态放轻松多做就有感觉了。我敢保证 99%的人刚开始刷的时候都是一头包。
    beidounanxizi
        35
    beidounanxizi  
       2020-09-09 17:12:10 +08:00
    多刷 多做比你当前高一层次的题 就可以 提升
    liuy1994g
        36
    liuy1994g  
       2020-09-09 17:15:01 +08:00 via Android
    有些题根本不是简单啊
    Yiki
        37
    Yiki  
       2020-09-09 17:19:32 +08:00
    算了我脑子不好
    写了五十多道了再看第一题还是不会写
    没救了
    还是贝多芬大法好
    Jooooooooo
        38
    Jooooooooo  
       2020-09-09 17:20:28 +08:00
    有套路的
    LiuJiang
        39
    LiuJiang  
       2020-09-09 17:22:14 +08:00
    刷题是有套路的,简单点就是题海战术,摸清核心思想,那么相关的题都会了,举个简单的例子,例题:从数组里面里面找出符合条件的元素。如果这题做出来之后,那么跟数组相关的问题,你应该都会解了。(比较简单的数组查询、排序等)
    chocovon
        40
    chocovon  
       2020-09-09 17:27:14 +08:00   ❤️ 1
    有些简单题类似于奇技淫巧,会就是会,不会的想破脑袋也想不到那个点上
    chengkai1853
        41
    chengkai1853  
       2020-09-09 18:20:40 +08:00
    看答案啊,通过答案理解题。看多了就会了!
    catfan
        42
    catfan  
       2020-09-09 18:54:41 +08:00
    写代码快十年了,觉大多数算法题都不会做😂
    sylxjtu
        43
    sylxjtu  
       2020-09-09 19:25:01 +08:00
    估计难度是按照代码量评的,直接上爆搜的题目很多都标的 hard,有些奇技淫巧题目因为代码量少反而是 easy
    robinhwu2020
        44
    robinhwu2020  
       2020-09-09 20:16:27 +08:00
    看通过率的,有些简单的通过率才 30%有些 middle 的通过率确有 50%。
    还有就是把算法书多翻翻,把习题都做一篇,起码简单的通过率 50%的肯定能写了。
    goodboy95
        45
    goodboy95  
       2020-09-09 20:58:32 +08:00
    @binux 还真有,当时我做每日一题的时候撞到过……
    现在忘了是哪道了,直接借助筛选找了几道:
    https://leetcode-cn.com/problems/house-robber/
    https://leetcode-cn.com/problems/min-cost-climbing-stairs/
    MeowOvO
        46
    MeowOvO  
       2020-09-09 21:40:52 +08:00
    说实话。。。貌似为了让你多做题,会把一些中等的变简单=-=
    twotiger
        47
    twotiger  
       2020-09-09 21:48:47 +08:00
    @goodboy95 看了你发的两题都是 dp 的,没学过的,还真不一定能写出来。
    scnace
        48
    scnace  
       2020-09-10 00:56:26 +08:00 via Android
    很正常啊 跟打游戏一样的啊 上来就打得好的毕竟都是少数 普通人都是熟能生巧 总结出适合自己的方法论就好了 ( 无非就是看了某些攻略之后可以走走捷径
    kangsheng9527
        49
    kangsheng9527  
       2020-09-10 02:11:08 +08:00
    实际项目遇到需要用到的算法会比 leetcode 要容易,因为 leetcode 相对抽象,真实项目是你一步一步往下写的。。。不一样的。。。leetcode 多看几次,一天一题即可。。。习惯了一段时间都会了。。。
    jiangzm
        50
    jiangzm  
       2020-09-10 02:25:10 +08:00
    简单的一般都能做出来就可以, 无非看是不是最优解而已,不断更新自己的算法思路就好了。
    20015jjw
        51
    20015jjw  
       2020-09-10 03:31:11 +08:00 via Android
    没事的都是菜出来的别担心
    way2explore2
        52
    way2explore2  
       2020-09-10 04:40:53 +08:00 via Android
    我写了一篇文章关于双指针的。

    会了它,至少可以掌握十道。😁

    https://tim.bai.uno/solve-all-algorithm-problems-using-2-pointers-technique/
    Desiree
        53
    Desiree  
       2020-09-10 06:53:49 +08:00
    如果太简单的都做不出来,建议还是先补补语言的语法或者算法的基础。如果盲目去刷,或者给答案都看不懂,那就是基础有点堪忧,一边做题一边看基础也可以啊
    fatestigma
        54
    fatestigma  
       2020-09-10 08:52:57 +08:00
    算法基础可以多补一补的,前期可以看看答案和解析,毕竟目前仅指望你学算法和用算法,而不是研究算法,并不指望你凭空自己想出并写出什么看毛片( KMP )算法。
    Marszm
        55
    Marszm  
       2020-09-10 10:04:07 +08:00
    你只要通关了 DP 。。。就没有难得和简单的了。。。一切算法转 DP 。。。
    lihongming
        56
    lihongming  
       2020-09-10 10:37:57 +08:00 via iPhone
    不用太伤心,有些题根本不是给程序员做的,而是给数学家做的。

    如果一个题,靠的是一种专用算法( KMP 之类的),而不是通用算法(堆栈递归动态等),那就跳过去吧,学会了也没啥用。
    leido
        57
    leido  
       2020-09-10 10:46:44 +08:00
    @lihongming 字符串匹配都成了专用算法? 那你不用写代码了.
    enjoyCoding
        58
    enjoyCoding  
       2020-09-10 10:52:50 +08:00
    leetcode 是按照数据结构分的 不是难不难想
    比如用数组就能做的题 如果不用考虑边界值 不考虑时间复杂度 空间复杂度
    大多数都是简单
    用红黑树的大多都是困难
    但是难度和使用数据结构正相关嘛 并不是 所以不是你不行 不要失去信心
    lewis89
        59
    lewis89  
       2020-09-10 11:10:31 +08:00
    @lihongming #56 实际上 KMP 并不快,用 hash 来做的 Rabin-Karp 比 KMP 易实现,速度也不慢
    Vendettar
        60
    Vendettar  
       2020-09-10 11:11:14 +08:00
    刚开始很正常,不是会不会,是熟悉不熟悉的问题,你多在里面泡一段时间,你会发现有些题你不熟悉原理但你就是能做出来。
    sdushn
        61
    sdushn  
       2020-09-10 11:12:56 +08:00
    先把基本的数据结构用明白,堆,栈,数组,散列表啥的,基本简单和部分中等都能搞定
    lewis89
        62
    lewis89  
       2020-09-10 11:15:55 +08:00
    @catfan #42 不会做很正常,因为通用的算法数据结构已经被封装的很好了,难以封装的 大部分也用不上,
    像 DP 实际上最难的是弄出递推公式,然后通过之前的计算结果简化后面求解的问题计算规模,
    但是递推公式大部分时候很麻烦,以现有的算力 + 99%大部分程序员遇到的 N 的规模,远远不如暴力求解来的划算
    wangyzj
        63
    wangyzj  
       2020-09-10 11:16:11 +08:00 via iPhone
    算法题都是套路
    lewis89
        64
    lewis89  
       2020-09-10 11:20:54 +08:00
    @catfan #42 另外举个例子就是拓扑排序,用来求有向图是否存在环状依赖的,一个经典的例子就是课程安排,不能要求学习 A 之前要学习 B 然后又同时要求学习 B 之前要学习 A,以大部分院校排课的运算量 + 程序员的知识,我敢打赌 99%市面上的教务系统肯定是暴力校验的这个依赖逻辑的,因为大部分时候 N 很小,花俏的算法并不是一个合适选择。
    vicsun2020
        65
    vicsun2020  
       2020-09-10 12:34:38 +08:00 via iPhone   ❤️ 1
    看答案能懂就行,没必要要求看题就会
    看题就会的老哥一般刷了 3-400 打底的
    vicsun2020
        66
    vicsun2020  
       2020-09-10 12:36:12 +08:00 via iPhone
    @Marszm 噗???二叉树遍历怎么转 dp
    不过 dp 都会了一般算法应该都没啥问题了
    xemtof
        67
    xemtof  
       2020-09-10 17:24:44 +08:00
    @berserk 算法导论根本不适合新手去看
    lihongming
        68
    lihongming  
       2020-09-11 05:04:22 +08:00
    @leido 你都说了他是用来匹配字符串的,当然就是“专用”了。这类算法可能一部分人会经常用到,但跟编程本身已经没有太大联系了,如果不是早年有专门研究算法的人发明出来,普通程序员怕是死都想不到应该这么做。

    对大多数程序员来说,掌握通用算法更重要一些,专用算法让专门做这个工作的人来掌握就可以了
    Marszm
        69
    Marszm  
       2020-09-11 09:08:20 +08:00
    @vicsun2020 这个吗,那一切算法都可以转化为。。。DP 其实也是递归。二叉树遍历也是递归。。没毛病了吧。
    Marszm
        70
    Marszm  
       2020-09-11 09:08:53 +08:00
    @vicsun2020 递归
    berserk
        71
    berserk  
       2020-09-11 10:45:32 +08:00
    @xemtof 你错了。
    Anarchy
        72
    Anarchy  
       2020-09-11 11:09:42 +08:00
    easy 题一般暴力解都可以通过,优解的情况很多可以标成 medium 了。
    xemtof
        73
    xemtof  
       2020-09-11 11:42:45 +08:00
    @berserk 我参加过 ACM/ICPC 的竞赛,看算法导论都有问题,你让一个新手去看?
    berserk
        74
    berserk  
       2020-09-11 16:45:12 +08:00
    @xemtof 这经历无关。和智商有关。
    ww050312
        75
    ww050312  
       2020-09-11 22:10:38 +08:00
    学一门算法导论当课本的课,并且学校规定不到 85+就挂科,可能就行了😅
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1035 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 21:44 · PVG 05:44 · LAX 13:44 · JFK 16:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.