• 请不要在回答技术问题时复制粘贴 AI 生成的内容
linxiaoziruo
V2EX  ›  程序员

算法,天启

  •  
  •   linxiaoziruo · Jul 30, 2020 · 7721 views
    This topic created in 2287 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

    39 replies  •  2020-07-31 17:12:09 +08:00
    Jooooooooo
    Jooooooooo
    Jul 30, 2020❤️3
    1
    聪明人做这种题真的很快

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

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

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

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

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

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

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

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


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

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

    每个人都是平等的。

    唯一不平等的是努力。

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

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

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

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

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

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