待办事项¶
1、已有算法熟练
2、熟悉不同语言和语法
3、学新的算法
旧版
书单¶
- 数据结构与算法 JavaScript 描述
- 算法导论
- 算法(第四版)
注意:学习目的不是独创算法,而是学会已有的算法,掌握标准算法。所以每一个题目要看最佳的算法,然后学会这个算法,并不是随便解答出来。
学习步骤:
- 熟练掌握数据结构和算法
- 根据知识点刷题(针对训练)
- 遗忘曲线复习
- 总结题目到算法
不同题目(知识点)应该标注一下: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 和这本书结合效果更好。