主页
搜索
最近更新
数据统计
申请密钥
系统公告
1
/
1
请查看完所有公告
rui_er 的代码记忆法
最后更新于 2025-07-31 09:35:02
作者
rui_er
分类
个人记录
复制 Markdown
查看原文
删除文章
更新内容
# rui_er 的代码记忆法 ## 0x0 阅读前提示与声明 本文只是我梳理我背板子方法的一篇随笔,请不要过度解读。如果你有耐心且有时间读完本文,你会发现这确实就是一篇正常的随笔。 本文的代码记忆法一般只适用于板子,毕竟不可能把每道题都背下来,也猜不到会考什么类型的题,主要是掌握算法的思想。 ## 0x1 第一次学习 第一次学习至少要大致掌握算法的用途以及流程,原理要有感性的理解,但不必苛求掌握每个细节。 在第一次学习中,要注意学习资料的选择,不要被网上的很多低质量甚至完全错误的博客误导,如果有算法发表的论文可以优先看原文(例如 Tarjan 算法),因为论文中的算法肯定不会有事实性错误。如果没有或找不到的话,可以参考高赞的、较为详细的博客。 最好在对算法有了大致的理解后再写代码,这样会避免你纠结于算法的具体实现而忽略了算法本身,学习算法最重要的还是理解。当然,第一次学习也没有必要自己写出代码,可以对照着题解代码或伪代码进行初步实现,卡壳的时候可以看一看哪一步的实现自己没有想到。哪怕是对照着题解代码一边敲一边给自己讲一遍哪一步是干什么的都是有用的,但是不要复制代码的一个字符。 ## 0x2 第一次复习 第一次的复习最好在学习算法后的三天以内,不必是大块的时间,可以是一节自习课上文化课累了想休息的时间,也可以只是在排队打饭等的零散时间。在大脑里想一遍算法的流程与原理,有小黄鸭的话可以考虑给它讲一遍。 有时间的时候把代码重新实现一遍,依然可以适当地参考写过的代码或题解代码。这时候就可以去抠正确性或复杂度的证明了,这有助于更透彻地理解算法本身。当时整个机房对着 Tarjan 论文提了一堆问题,然后一起讨论全证了一遍之后感到豁然开朗。 ## 0x3 第二次复习 第二次的复习可以在半个月后进行,防止遗忘。这时候可以提高对代码准确性的要求,例如要求自己不编译(或不测样例)直接通过模板题。 然后可以有针对性地对算法的难点进行突破。例如思维型的算法可以重新推导一遍得出算法的过程,而代码难度较高的可以着重于代码实现。 当然,这都第三次学了,肯定要发掘算法中可以变形、拓展的一些性质,做一些难题。 ## 0x4 后续复习 后续的复习可能是针对考试的。可以考虑先口胡/推导一遍算法流程,然后默一遍板子,争取不编译(或不测样例)直接通过模板题,同时看一看算法的高级应用。
正在渲染内容...
点赞
5
收藏
0