Skip to content

待办事项

1、已有算法熟练

2、熟悉不同语言和语法

3、学新的算法

旧版

书单

  • 数据结构与算法 JavaScript 描述
  • 算法导论
  • 算法(第四版)

注意:学习目的不是独创算法,而是学会已有的算法,掌握标准算法。所以每一个题目要看最佳的算法,然后学会这个算法,并不是随便解答出来。

学习步骤:

  1. 熟练掌握数据结构和算法
  2. 根据知识点刷题(针对训练)
  3. 遗忘曲线复习
  4. 总结题目到算法

不同题目(知识点)应该标注一下:Y N ?表示自己的掌握情况(做出来不一定完全掌握),然后把似懂非懂的部分弄清楚。自己做一次;一定要再看标准答案一次;然后更改自己的思路,不断优化代码。

  • 优化算法
  • 代码中增加注释,规范写法(稍后实现)
  • C 啊哈算法中还有若干问题
  • 已经完成的题目,一部分算法不好。不能超过 50% 的算法都不好,需要提升(近期可以做一下这部分)
  • 常见算法学习(markdown文档)

优先复习整理当前的题目

学习新的算法(markdown文件)

针对动态规划等知识点突破一下

然后再进行下一步刷题(有重点的刷题)

重点是基础算法的掌握(简单会做90% 中等会做50%以上 高级不要求)

1、按标签把常见知识点刷一次(记录自己掌握的情况)

2、不断复习,迭代自己的代码,直到完全掌握。

3、遗忘曲线学习复习代码。

主要使用对象、数组、字符串的 API 操作,所以 TS 可以直接写思路

python 和 其他语言,熟悉 API 即可完成大部分题目

代码规范和单元测试

master 分支单元测试通过;时间有限,优先学算法,测试覆盖率有待提升。

master 分支代码格式检查通过,满足 eslint 规范。

注意

主要精力放在算法上,不要放在代码细节、格式检查、单元测试上!

每一个题目,自己总结出考点、难点、易错点等,归纳主要的方法。

一道题多种方法写出来:简单暴力;适合大部分情况(5%的特殊情况不考虑);时间复杂度最好;学习别人的算法。

注:同样的代码在不同时候,打败人数比例不同(可能网络问题,可能出现有更好算法)

官网上有基础算法讲解,可以系统看一下 https://leetcode-cn.com/explore/

学习,就是把不会的弄懂!改错本和对应的知识点

学习方法:把对应的知识点分别归类,强化学习;加强数据结构与算法的应用。一边做算法题目,一边巩固数据结构和基础知识。

Javascript 数据结构与算法书籍中,再次学习一次。leetcode 和这本书结合效果更好。