算法题越做越没信心 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
supremacyxxxxx
V2EX    程序员

算法题越做越没信心

  •  
  •   supremacyxxxxx 2020-05-11 13:27:28 +08:00 5239 次点击
    这是一个创建于 1997 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近每天都在刷算法题,每天一两道,已经刷了接近一个月了,现在做一些题还是很多做不来,看题解也觉得不太好理解,总之就没啥正反馈,越做越不耐烦。唉,这到时候秋招可咋整。想问问各位有啥好的刷算法题的建议吗

    24 条回复    2020-05-27 11:40:05 +08:00
    boshan927
        1
    boshan927  
       2020-05-11 13:40:02 +08:00 via iPhone
    正常,别急,继续做。
    metamask
        2
    metamask  
       2020-05-11 13:42:21 +08:00
    按类别去刷,效率比较高
    没思路直接看题解,再自己整理思路继续做
    还是撸不动就去看看一些别人讲解,或者补下知识

    心态的话
    - 当成是乐趣去做,没乐趣别勉强,容易整吐
    - 硬上就当是面向工资编程
    Nich0la5
        3
    Nich0la5  
       2020-05-11 13:47:39 +08:00 via Android
    先把算法相关的书看一遍呗,硬上太痛苦了
    paoqi2048
        4
    paoqi2048  
       2020-05-11 13:50:20 +08:00
    这个急不来
    hahaayaoyaoyao
        5
    hahaayaoyaoyao  
       2020-05-11 13:51:48 +08:00 via Android
    什么难度,开始不要刷困难的
    krystal9527
        6
    krystal9527  
       2020-05-11 15:14:04 +08:00
    slow slow come
    Simle100
        7
    Simle100  
       2020-05-11 15:18:35 +08:00
    实在想不出来的题目,可以跳出去呀。
    WhoMercy
        8
    WhoMercy  
       2020-05-11 15:20:49 +08:00
    才一个月就不行了吗,我刷了一年都感觉懵懵懂懂。

    要想速成,就可能会比较痛苦。
    一天刷五道、八道,十分钟没思路就看高票题解,隔几天再来重来一遍,集中高频题型反复刷。
    背思路、背套路。
    darksword21
        9
    darksword21  
    PRO
       2020-05-11 15:21:08 +08:00
    正常,我是按类别,做一些就会发现一些套路之类的,比如双指针这类的
    jones2000
        10
    jones2000  
       2020-05-11 15:50:41 +08:00
    刷题都是纸上谈兵。 关键还是要代码经验,就算你不知道做什么,你直接在 git 上找几个好的开源的插件, 自己根据自己的理解重写一遍都比纯做题的好。
    fkdog
        11
    fkdog  
       2020-05-11 16:26:26 +08:00
    先回忆一下自己以前上学时候的成绩如何?

    算法题和物理数学刷题道理是一样的。
    能通过刷题提升的往往是一类能举一反三、善于归纳总结的人。

    如果自己没有这方面能力,无脑刷题的话怕是效率不会很高。
    archxm
        12
    archxm  
       2020-05-11 17:40:04 +08:00
    以前,互联网还不发达的时候,一些大佬会把自己想到的代码,好好地修饰优化一下,发到某本杂志上,每年,都会对这些算法进行评选,于是有了 ACM 。后来,互联网越来越发达,大家都去 csdn 啊,oschina 啊,这种地方讨论问题,然后那些杂志就越来越不行了。所以,算法本质上到底是啥?就是把一些常用的程序好好整理一下。
    如果网上那些算法题,理解起来很费劲,你完全不用去做,浪费时间。
    fishCatcher
        13
    fishCatcher  
       2020-05-11 18:55:17 +08:00 via iPhone   1
    正常,当你做了三四百之后会发现还是有很多 medium 做不出来,然后就开始自我怀疑。最后不得不总结出人脑工作原理:万物基于背诵。
    chevalier
        14
    chevalier  
       2020-05-11 19:07:58 +08:00   1
    楼上说的对,本质上跟高考数学题差不多,对于普通人来说,这个题目不会做,原因只有一个,之前没见过这类题
    hehheh
        15
    hehheh  
       2020-05-11 19:17:44 +08:00
    其实刷到 300 左右就能把大部分类型的题都刷过了,再往后基本都能写出来,偶尔有时候会 TLE
    zooo
        16
    zooo  
       2020-05-11 19:22:00 +08:00
    我刷了 20 到也能去面试。。
    CoderGeek
        17
    CoderGeek  
       2020-05-11 19:22:35 +08:00
    这东西 写的多了就会了 像考试 233
    yazoox
        18
    yazoox  
       2020-05-11 20:28:29 +08:00
    @jones2000 “开源的插件”,这个是什么意思?没看明白。
    V2todd
        19
    V2todd  
       2020-05-11 20:47:42 +08:00 via Android
    力扣 700 题,其他地方未统计,长年 AC 力扣周赛前三题,动态规划太难了,去年 9 月份两数之和都不会的人,以上
    buffzty
        20
    buffzty  
       2020-05-12 09:56:21 +08:00   1
    你这个是正常的,创造那些算法的人花了几年几十年优化出的算法,你要是一看题目就能就解出来那你就是当代牛顿了.
    我一般是先了解这个算法的概念. 然后尝试去写.写不出来看答案. 看懂答案后 再用手写一遍. 写同一类型的题目 写几次你就熟了. 我感觉死记硬背挺重要的
    jones2000
        21
    jones2000  
       2020-05-12 14:15:08 +08:00
    @yazoox 就比如说吧, 你是学前端的,哪你可以看下 esprima 这类语法解析器的代码(这些代码量不大)+编译原理的书,然后自己尝试写一个, 在你动手写的过程中,就有遇到很多问题,一个一个解决,这比你刷题要来的有用。
    MongkeMary
        22
    MongkeMary  
       2020-05-27 06:47:06 +08:00
    哈哈,我也曾经有同感啊。我是今年二月开始刷的,到现在刷了 500 多吧。中间也有一段时间特别没信心,觉得啥题都不会,但是慢慢熬过去了那个瓶颈期,后面就越来越好了。

    我自己总结,不会做题有两种情况:
    1. 题目背后的知识点不会
    2. 知识点会,但是没有看出来这道题可以用这个知识点做


    对于第一种情况,对于这两种情况,最好的方法都是“专题训练”。我是这么做专题训练的:

    1. 每次针对性的选择一个知识点,比如我之前最怕的单调栈 /队列,先把背后的原理搞懂。这个阶段可以借助于教材,教程,博客,以及 LeetCode 的讨论区总结(这个是一个被低估的宝藏,里面很多人做了非常不错的总结)

    2. 搞懂知识点后:找一个非常典型的题目,一定是那种一眼就看出考察知识点的题目来做。这个题目要精做,从最开始的简单的方法 brutal force 开始,一点点优化,最后用到刚学的知识点(单调栈)。

    3. 然后最重要的来了,不要做完之后就跑了去下一题了。一定要仔细揣摩为什么这道题可以使用这个方法,用其他的方法不行吗?这个方法有什么独特的优势吗?这种优势有什么条件吗?比如题目如何改改之后,这个方法还是最好的吗?这些问题一定要想清楚,才能从根本上理解这个算法。

    4. 再然后就是解决问题二了。如何办吗?还是“专题训练”。找大量类似的题目,先从容易识别的入手,慢慢过渡到不是那么容易的,再到隐藏很深的题目。看看都是什么情况下可以转化为此方法。

    经过这几个阶段的练习,这个算法才算是基本算是掌握了。当然,人脑的特点就是,忘得快。所以,即使总结心得体会,后面没事常翻翻。常常是你想了半天也回忆不起来的东西,看看当时的笔记就瞬间清楚了。

    希望我的经验对你有帮助,加油
    MongkeMary
        23
    MongkeMary  
       2020-05-27 06:56:56 +08:00
    @MongkeMary 还有一点忘记说了,“专题训练” 既是内容上的,更是时间上的。

    内容上的,就是上个帖子,把类似的题目集中学习、揣摩、训练。这是按照 “知识点” 来划分,而不是大致的“类比”,比如 array, string... 这样的分类过于宽泛,很容易在练习过程中碰到不同的知识点,导致自信心不断受挫,本来可以学会的也搞不定了。集中火力仅供一个知识点,不仅敌人相对可控,自己也会有很多的信心,比较容易坚持下去。

    时间上的“专题训练”是指,要抽出一定的时间,排除一切干扰,专心做这个事情。我们从小的学习就存在一个误区,所谓的每天一个单词,几年后你就是专八的词汇量。实际上,这样你永远也学不好英语。学习心得只是,一定要集中时间精力,在最短的时间内突破,然后你可以“每天一道题”这样保持手感。但是开始学习阶段,每天一道题绝对是大忌。

    说到底,就是 “集中优势兵力,歼灭敌人有生力量”, 因为 “伤其十指不如断其一指”。切忌搞成了 “添油战术”。
    supremacyxxxxx
        24
    supremacyxxxxx  
    OP
       2020-05-27 11:40:05 +08:00 via Android
    这里统一回复一下,感谢各位给出的建议!
    也希望自己能熬过这段时间。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5717 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 55ms UTC 02:56 PVG 10:56 LAX 19:56 JFK 22:56
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86