首页 > 代码库 > 写在前面:21天学习算法

写在前面:21天学习算法

最近打算找一份新的工作,感到自己在算法环节还很疲弱。由于时间还算充裕,就决定将LeetCode上面的算法题学一遍,找出自己的薄弱,锻炼算法思维,吸收他人长处。个人觉得,刷题只是学习算法中的一个环节,主要的作用是用来反馈错误和增加熟练度。相比较刷题,更加重要的是对比和总结,对比自己的代码和他人的代码,对比不同的解法,总结一类算法或一类问题,总结一些tips,这两步是提升自己的关键。另外,为了不让自己的视野过于局限,让得到的碎片化学习成果体系化,可以在刷题的时候,就某方面的算法或数据结构,多参考其他书籍,类别可以杂一点,难度系数可以有高有低,例如算法方面的:《算法导论》、刘汝佳紫书和白书、《剑指OFFER》、还有一本网上的《手写代码必备手册》,代码优化方面的:《代码大全》(例如,for或while循环怎么写好),抽象思维类的:SICP(例如,递归和迭代就是通过这本书略微弄懂的)。

计划:

时间:2017-08-10 到2017-08-31,一共21天。

任务:

  • 刷完LeetCode上面所有题目(目前已完成300道)。(学习)
  • 每一个算法或数据结构专题写一篇总结型博客,博客主要讲解自己的做错题目、自己不熟悉的题目、自己代码一般的题目,给出基本的思路和核心代码,最后总结。(总结)
  • 完成剑指Offer上面的所有题目,将不会、做错、不熟的题目汇总到上面的博客中。(巩固)
  • 在刷题的时候,就某一专题,看完算法导论的相关章节(主要是前17章),并完成课后习题,将问题和总结汇总到博客中。(夯实理论)
  • (可选)如果有空的话,就刷刷紫书与大小白吧,去做一做ACM的题目。(提高)

通过刷题找到问题,带着问题去看书的相关章节,再来找问题来巩固。下面是每天的完成量,就当做打表吧:

第一天:复习专题,树。

 

第二天:

写在前面:21天学习算法