63天算法训练详细说明

目的

  • 熟悉新近学习的编程语言各种语法糖,最大化的精简代码。
  • 复习基本数据结构和基本算法,提高代码效率。
  • 训练持久力。

说明

个人训练

  • 截至2020年2月26日时,基础题目共有1257道,按一个随笔3道题目为例,预计花费时间1257/3=419天,大概是1年3个月,当然某些时候状态好或者时间充足一口气刷完好几天的量也不奇怪,因此Day1对应的题目编号为1-3,Day2对应的为4-6...Day419对应的为1255-1257。
  • 冰冻三尺非一日之寒,这里给自己开个坑,慢慢把它填完。
  • 官方网站有更详细的题解,Github上也有无数的帅哥美女整理了详细的文字和动态攻略,这里我们就不再重复造轮子。
  • 随笔思路:快速刷题,记录自己原始解,如果执行效率和空间利用率都不理想,思考进一步的优化解,最后在熟悉语法糖的基础上,压缩代码文本。
  • 官网上的题目分三个难度,简单、中等、困难,这里我们直接按顺序刷,反正都是要掌握的。
  • 就跟小学学写字的时候一样,重复训练,大脑和肌肉自然会记住最优解,因此算法训练并不是一蹴而就或者某次突击就能完成的任务,而是需要细水长流,贯穿一生。

掌握数据结构

  • 数组与链表:单 / 双向链表
  • 栈与队列
  • 哈希表
  • 堆:最大堆 / 最小堆
  • 树与图:最近公共祖先、并查集
  • 字符串:前缀树(字典树) / 后缀树
  • 随时增加...

掌握基础算法

  • 基础技巧:分治、二分、贪心
  • 排序算法:快速排序、归并排序、计数排序
  • 搜索算法:回溯、递归、深度优先遍历,广度优先遍历,二叉搜索树等
  • 图论:最短路径、最小生成树
  • 动态规划:背包问题、最长子序列
  • 随时增加...

相关推荐