63天算法训练详细说明
目的
- 熟悉新近学习的编程语言各种语法糖,最大化的精简代码。
- 复习基本数据结构和基本算法,提高代码效率。
- 训练持久力。
说明
- 所有的算法题目来源于LeetCode,版权归官方所有。
- 知乎:大家是如何刷LeetCode的?
- Github:详尽的LeetCode题解
- Github:动画演示LeetCode题目
- 常用数据结构和算法的动态可视化
个人训练
- 截至2020年2月26日时,基础题目共有1257道,按一个随笔3道题目为例,预计花费时间1257/3=419天,大概是1年3个月,当然某些时候状态好或者时间充足一口气刷完好几天的量也不奇怪,因此Day1对应的题目编号为1-3,Day2对应的为4-6...Day419对应的为1255-1257。
- 冰冻三尺非一日之寒,这里给自己开个坑,慢慢把它填完。
- 官方网站有更详细的题解,Github上也有无数的帅哥美女整理了详细的文字和动态攻略,这里我们就不再重复造轮子。
- 随笔思路:快速刷题,记录自己原始解,如果执行效率和空间利用率都不理想,思考进一步的优化解,最后在熟悉语法糖的基础上,压缩代码文本。
- 官网上的题目分三个难度,简单、中等、困难,这里我们直接按顺序刷,反正都是要掌握的。
- 就跟小学学写字的时候一样,重复训练,大脑和肌肉自然会记住最优解,因此算法训练并不是一蹴而就或者某次突击就能完成的任务,而是需要细水长流,贯穿一生。
掌握数据结构
- 数组与链表:单 / 双向链表
- 栈与队列
- 哈希表
- 堆:最大堆 / 最小堆
- 树与图:最近公共祖先、并查集
- 字符串:前缀树(字典树) / 后缀树
- 随时增加...
掌握基础算法
- 基础技巧:分治、二分、贪心
- 排序算法:快速排序、归并排序、计数排序
- 搜索算法:回溯、递归、深度优先遍历,广度优先遍历,二叉搜索树等
- 图论:最短路径、最小生成树
- 动态规划:背包问题、最长子序列
- 随时增加...
相关推荐
aanndd 2020-08-12
aanndd 2020-07-26
aanndd 2020-07-08
zangdaiyang 2020-07-04
yaohustiAC 2020-06-28
us0 2020-06-28
yaohustiAC 2020-06-28
zangdaiyang 2020-06-28
Clairezz 2020-06-28
嗡汤圆 2020-06-26
嗡汤圆 2020-06-21
aanndd 2020-06-16
aanndd 2020-06-16
码墨 2020-06-16
yaohustiAC 2020-06-11
zangdaiyang 2020-06-10
jiayuqicz 2020-06-09
yaohustiAC 2020-06-06
heray0 2020-06-04