0%

算法学习路线

来源:ACM 冠军:拿到 Google Offer,我的算法学习和面试经历_哔哩哔哩_bilibili

1. 从代码能力练起

  • 算法能力——有没有思路,会不会做,解法效率

  • 代码能力——有思路,能不能把程序又快又对写出来

尽量不抄代码

避免单步调试,多练习输出调试和智商模拟调试

分类刷题

  • 加深某一方面只是,更方便知识之间类比
  • 有助于科学思维模式的形成
graph LR
A["排序算法"]-->B["比较类排序"]
A-->C["非比较排序"]
B-->D["交换排序"]
D-->冒泡排序
D-->快速排序
B-->E["插入排序"]
E-->直接插入排序
E-->希尔排序
B-->F["选择排序"]
F-->简单选择排序
F-->堆排序
B-->G["归并排序"]
G-->二路归并排序
G-->多路归并排序
C-->桶排序
C-->基数排序

2. 刷题方法

三刷

一刷

小类别代表性题目

可以看题解,在复现

二刷

复习代表性题目;

刷该分类更多题目;举一反三,尽量少的提示下完成

三刷

综合性题目

独立实现+测试

五步

1. 理解题面

  • 想更多的例子和测试数据,有没有遗漏
  • 提炼题目中关键信息、变化信息

2. 部分实现

无论什么题目,尝试实现一个朴素解法

  • 一般是搜索
  • 锻炼代码能力

自己实现部分场景下的解法

  • 尽量使自己解法更优,覆盖更多场景

3. 有提示解答

前期想20min不会,看题解,中期想10min没思路,看提示在想10min

看提示$\neq$看题解

  • 题目类别,题解标题,时间复杂度,一个小结论

4. 独立解答

独立求解,注意测试用例构造

5. 写题解

  • 尝试分析对比各种不同解法的优劣
-------------本文结束-------------