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

算法,天启

  •  
  •   linxiaoziruo 2020-07-30 10:30:15 +08:00 6776 次点击
    这是一个创建于 1903 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近一直在刷算法题,感觉和高考数学试卷最后一题类似。

    你掌握了解题的所有基本知识(如果是数学,基本知识就是大纲里的各种定理,如果是算法,基本知识就是基础的几个算法思想,比如递归、贪心,回溯,分支限界等),但就是无法发现解题的那个关键步骤和潜藏的那个数字规律。

    而发现这个关键点全靠观察和思维敏捷度,没办法说通过某一个固定线索或者思想来顺理成章的提取它,我把发现这个关键点的步骤称之为天启。

    这难道就是每个人资质上的区别?这种感觉很痛苦!

    有没有大佬出来指点指点我。

    39 条回复    2020-07-31 17:12:09 +08:00
    Jooooooooo
        1
    Jooooooooo  
       2020-07-30 10:46:49 +08:00   3
    聪明人做这种题真的很快

    你在想这里面绕来绕去逻辑的时候, 人家已经把正确答案写出来了

    接受自己的智商平平就好了, 智商就是天生的东西, 说白了是运气好
    javapythongo
        2
    javapythongo  
       2020-07-30 10:47:31 +08:00   2
    感觉普通人刷算法题就是找规律积累经验
    TomatoYuyuko
        3
    TomatoYuyuko  
       2020-07-30 10:48:54 +08:00
    无他
    linxiaoziruo
        4
    linxiaoziruo  
    OP
       2020-07-30 11:23:56 +08:00
    @javapythongo 是的,我就是在积累经验,争取能提取出一般性的规律,越刷越觉得除了一些基本思想,大部分都是靠灵感,很痛苦。
    azh7138m
        5
    azh7138m  
       2020-07-30 11:30:26 +08:00
    智商就是有差距嘛

    我记得计蒜客的活动,4 题( 2 3 4 一样的题目,只是数据范围不一样),看到初中生 30 分钟,AK
    太惨了,我这种垃圾就只配搬砖
    Weixiao0725
        6
    Weixiao0725  
       2020-07-30 11:32:01 +08:00
    得达到一定的量的时候,才能有所顿悟。所谓量变->质变,多刷题,培养你写程序的思维还是有好处的。
    lithbitren
        7
    lithbitren  
       2020-07-30 11:32:58 +08:00
    数据结构和搜索相关的一般理解了就差不多了,代码模板都特简单,动归贪心数学相关的没做过基本就是不会,基本已经半放弃了
    coderluan
        8
    coderluan  
       2020-07-30 11:33:09 +08:00
    简单题有技巧的, 核心就是分类, 类型其实不多, 相同类型的思路也都相似, 所以存在刷题的可能, 智商差距还是能靠努力来弥补, 不过困难题就不行了, 但是对普通人影响也没那么大.
    ericgui
        9
    ericgui  
       2020-07-30 11:36:30 +08:00   1
    首先,容我推广一波, 我的 leetcode java 版视频: https://space.bilibili.com/9099840/channel/detail?cid=89640

    其次,leetcode,你就是多投入时间,多练习,远没到考验你天赋的程度
    levelworm
        10
    levelworm  
       2020-07-30 12:31:23 +08:00 via Android
    普通人只能靠多堆来获取灵感,做多了你就可以穷举那关键的一步了,前提是不是特别新的东西。
    laqow
        11
    laqow  
       2020-07-30 12:34:53 +08:00 via Android
    为什么不试着用算法理解这个“天启”是什么
    chuyang
        12
    chuyang  
       2020-07-30 12:36:40 +08:00 via Android
    我也很困惑
    hakono
        13
    hakono  
       2020-07-30 12:39:57 +08:00
    聪明的人不代表不用刷题,只是能在比普通人少刷非常多题的情况下,做到运用自如或者独自推导出解题思路
    有人学了各种定理,就是能在只做了几道题目熟悉了定理后,就轻松把各种定理排列组合玩出花来解题
    但普通人没有这种资质也就只能扎扎实实刷题积累经验了。(但是要知道不是为了应试的话,不能为了刷题而刷题啊,而是为了熟练运用知识而刷题。有人就是能不刷题学了知识就能拿来用,有人就不能。没办法的事情)
    20015jjw
        14
    20015jjw  
       2020-07-30 12:47:38 +08:00 via Android
    @ericgui
    天赋是真的有
    我大学的助教
    0 刷题经验
    只投过 Google 一家
    实习 转正面试都全过
    编辑器都不用高亮的...
    aguesuka
        15
    aguesuka  
       2020-07-30 12:50:18 +08:00 via Android
    可以去看一下对象排序算法时间复杂度为什么是 O(nlogn)的证明,然后养成一个遇到算法题先计算理论最小时间复杂度的习惯。当然有些可能不好计算,但是在计算的过程中把问题抽象对于解决的帮助也很大,可以避免走很多弯路。
    wangyzj
        16
    wangyzj  
       2020-07-30 13:02:11 +08:00
    其实几乎所有题都有技巧
    再变态的题目都是一个简单的变换
    是可以分类的

    前提是你得首先自己理解好,不能死记硬背

    困难的不是做出来
    是用最好的方法做出来
    lechain
        17
    lechain  
       2020-07-30 13:10:04 +08:00 via Android
    算法的本质是数学,解题第一步是数学建模,解题快不快取决于数学好不好,而数学是可以训练的,并不是智商决定一切(不过有一说一,数学天赋好的人一般人是真的没法比)
    tangyikejun
        18
    tangyikejun  
       2020-07-30 13:32:10 +08:00   1
    推荐一本书 《怎样解题》
    mathzhaoliang
        19
    mathzhaoliang  
       2020-07-30 13:33:37 +08:00
    leetcode 里面没有多少数学,只有套路,你习惯了那个套路就行。
    现在论坛里面说到算法言必称 leetcode,这不是好现象。
    ericgui
        20
    ericgui  
       2020-07-30 13:40:29 +08:00
    @20015jjw 这个肯定不能比,你要和自己比,leetcode 绝对不会超过你的智商上限
    20015jjw
        21
    20015jjw  
       220-07-30 13:41:36 +08:00 via Android
    @ericgui 别吧 有的题不看答案真的不会...
    ericgui
        22
    ericgui  
       2020-07-30 13:51:42 +08:00
    @20015jjw 一开始真的需要看答案的,我卡在 38 题,easy 题,我连答案都看不懂,非常灰心,很受打击,甚至觉得自己永远成为不了高级程序员,停了 11 个月。然后又开始刷。刷到第三遍,才终于明白,哦,原来是动态规划可以解,比较基础的一道动态规划题。

    所以,还是要多投入时间,掌握套路。
    onleaks
        23
    onleaks  
       2020-07-30 14:03:56 +08:00
    天启的话我感觉还是要多做,在通过自己的经验突然某一天就发现原来是这么写的
    20015jjw
        24
    20015jjw  
       2020-07-30 14:09:02 +08:00 via Android
    @ericgui
    ...动态规划算法课会学 这些都是基本的东西 等你做到 Google 的 hard 题你就理解我的意思了...
    ericgui
        25
    ericgui  
       2020-07-30 14:12:24 +08:00
    @20015jjw 我又不是 CS 本科,没学过

    我学医,改行,还是很艰难的


    本贴的发帖人,估计也八成是改行的

    不能假设所有人都学上过计算机本科
    linxiaoziruo
        26
    linxiaoziruo  
    OP
       2020-07-30 14:21:05 +08:00
    @ericgui 兄弟,我软件工程本科毕业的。
    linxiaoziruo
        27
    linxiaoziruo  
    OP
       2020-07-30 14:22:16 +08:00
    看到有人说 leetcode 的程序应该不会超过智商的上限,我就安心多了。再加把劲!
    20015jjw
        28
    20015jjw  
       2020-07-30 14:30:59 +08:00
    @ericgui
    premed/med 才是真的大佬呀
    我只是想说 有的题是真的难... 不看答案靠自己智商真的做不出 /想不到最优解
    DEVN
        29
    DEVN  
       2020-07-30 14:40:47 +08:00
    没有天才这么一说。

    每个人都是平等的。

    唯一不平等的是努力。

    你没他努力凭什么比他懂得多?
    Codelike
        30
    Codelike  
       2020-07-30 14:41:46 +08:00   1
    思考过这类问题。以数学为例,出题人出题由答案出发,推出问题条件。假设里面用到了 3 个定理,4 个常用变形和 1 个不常用的变形。 在学习同样的解题必需知识后,有些人能看到 3 步,有些人能看到 5 步,有些人能看到 8 步,有些人能看到 11 步。所以有些人能一眼看到答案。有些人做半天,尝试了各种方法可能才能做出来。

    吾等大多常人,只能看到 3 步。想要解 11 步的题目,就需要做类似的题,形成定式思维,减少思考步数,提高解题速度。这个过程就是刷题。

    至于天启,感觉还是臆想出来的,就像迷宫一样,只有选择了正确的路才能成功走到终点。资质当然有区别,陶哲轩 13 岁获得国际数学奥林匹克竞赛数学金牌,但就算是他也没办法超脱人类的限制。假设他能看到 20 步,遇到 200 步的题目,也会感到智力的不足。

    认识自己的平庸,并承认它,原谅自己。立足平庸,多学习高效的学习方法,尽量提高自己的刷题效率,以求对自己的超越。
    justin2018
        31
    justin2018  
       2020-07-30 14:43:51 +08:00   2
    当年考试的时候 我只会背题和套题~

    直到有一天放学和别人打架~ 被别人把头按着往墙上撞~ 晚上回去做题 突然觉得以前好难的题 一下子变得简单了~

    难道是开窍了 ~~~ 感觉很玄学~
    MeatIndustry
        32
    MeatIndustry  
       2020-07-30 14:45:45 +08:00 via iPhone
    和楼主共鸣了。共勉,加油
    longalong
        33
    longalong  
       2020-07-30 17:58:08 +08:00
    @justin2018 窝草,还可以这样,好想去打架
    fantasua
        34
    fantasua  
       2020-07-30 19:09:48 +08:00
    @tangyikejun 高中的时候看了这本书,感觉受益匪浅
    yangbonis
        35
    yangbonis  
       2020-07-30 19:29:22 +08:00 via iPhone
    可以把自己用的 api 算下时间复杂度,刷题挺无聊的
    ChaYedan666
        36
    ChaYedan666  
       2020-07-30 20:54:58 +08:00
    多刷就好了,作为 EE 本科生,DS 连图都不知道的,期末考试老师抬一手给过的人。现在刷了差不多一百五左右,简单和中等,困难(假困难)题几乎都能动手做了。无非就是刷一道题之后要知道为什么这么想,后面读完题几乎就有思路了
    ericgui
        37
    ericgui  
       2020-07-31 00:52:35 +08:00 via Android
    @ChaYedan666 正解
    lithbitren
        38
    lithbitren  
       2020-07-31 10:33:00 +08:00
    做了一两百题就觉得觉得没问题的还是太年轻,我做了一千题,遇到没做过的贪心或 DP 也不敢保证在短时间能做出来,数学题没见过的一般都是战略性放弃,没时间也没动力去复习数论、离散数学和计算几何的知识点了,但数据结构相关的,只要确定了数据规模和复杂度,啪啪啪几分钟基本就可以 AC 了。
    quietnight
        39
    quietnight  
       2020-07-31 17:12:09 +08:00
    你这个体验很不错,我从初中开始参加数学奥赛,通过和队友比较发现一个事实。大家的题库积累量是相当,熟悉的题目在排除粗心等因素拉不开差距,真正决定名次的是需要快速发现数学规律的技巧题,这就是天赋的差距。据我观察,拥有这种天赋的同学在数学领域已经有所建树了,没有得比如我就搞 cs 了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3436 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 10:39 PVG 18:39 LAX 03:39 JFK 06:39
    Do have faith in what you're doing.
    ubao 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