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

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

  •  1
     
  •   kikione · 43 天前 · 7789 次点击
    这是一个创建于 43 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    做多了 应该会好很多

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

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

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

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

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

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

    对大多数程序员来说,掌握通用算法更重要一些,专用算法让专门做这个工作的人来掌握就可以了
    Marszm
        69
    Marszm   41 天前
    @vicsun2020 这个吗,那一切算法都可以转化为。。。DP 其实也是递归。二叉树遍历也是递归。。没毛病了吧。
    Marszm
        70
    Marszm   41 天前
    @vicsun2020 递归
    berserk
        71
    berserk   41 天前
    @xemtof 你错了。
    Anarchy
        72
    Anarchy   41 天前
    easy 题一般暴力解都可以通过,优解的情况很多可以标成 medium 了。
    xemtof
        73
    xemtof   41 天前
    @berserk 我参加过 ACM/ICPC 的竞赛,看算法导论都有问题,你让一个新手去看?
    berserk
        74
    berserk   41 天前
    @xemtof 这经历无关。和智商有关。
    ww050312
        75
    ww050312   41 天前
    学一门算法导论当课本的课,并且学校规定不到 85+就挂科,可能就行了😅
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1335 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:10 · PVG 02:10 · LAX 11:10 · JFK 14:10
    ♥ Do have faith in what you're doing.