• 想必学习算法的重要性不言而喻,在此不做赘述。接下来是怎么学的问题。
    1. 学习算法要把握住本质,不要被细节带偏。不要纠结于一道题的得失,要知道,leetcode上那么多算法,实在刷不完。因此要把常见题型刷熟练透彻。而熟练的过程是有步骤的。就像王阳明对学习的几个境界的描述一样,拿到一个算法题,大概会有以下几种反应:
      1. 这是啥,我咋看不懂题,题目要我做啥
      2. 喔,我读懂题了,但是没有一点思路
      3. 我能很快的找到一个最笨的方法解决,但是明显不是题目想要的答案
      4. 我能想到这个题要考啥知识点,但是写不出来
      5. 我能写出来,但是小细节把握不好
      6. 我能流畅的写下来

    因此,学习算法也要有步骤有目的的循序渐进,才能在逐渐的学习过程中有所进步。不然搞题海战术的话,时间成本和学习效率都会大打折扣,得不偿失。

    1. 为了能够达到d的层次,首先要对已有的模式烂熟于心。也就是说需要对已有的常见的算法模式进行整理总结记忆。巧妇难为无米之炊,我们要心中有模版,才能在题来的时候有应对的武器。所以,第一阶段就是学习常见的算法模式,熟练掌握所有的模版套路,在思考一道题的时候去对号入座,这样学才会有一个模式而言,才会有效果。
    2. 为了达到e的层级,我们需要多去练习,也就是说每天都要写两道d层级已会的选择题,深入细节,恭于实践,做到这一步的要求就是不能懒,要勤动手,才能掌握。
    3. 为了达到f,需要我们有个具体详细的目标和deadline,这样我们做起来才会有紧迫感,效率也会逐渐提升。
    4. 千里之行,始于足下,开始吧,少年!

    写于2021.9.17