/algorithm

算法的学习与思考

Primary LanguageJava

怎么学习算法

我觉得学习算法的态度就是思考,思考,再思考。

  1. 第一个是思考是指 面对 ,不要看见算法题就觉得很难,不去想,然后通过搜索来得到答案,可是你应该明白,在如今这个互联网时代,资料随处可得,重要的是你面对问题的时候是否可以真正分析,调试,解决它。
  2. 第二个思考是通过你所具备的知识和能够查阅的资料去 解决 它,无论怎么样,其实我们都是可以对一个问题有办法解决,最差的也可以通过穷举法来列出来,只不过这样很傻就是了,然后我们通过查看别人的优秀解法来完善自己的解法。
  3. 第三个思考是根据实际情况来 选择 实际的解法,因为很多时候最优的解决其实并不适用于现在情况,这个时候就要求我们能够有所取舍。

基本数据结构

- 链表
- 栈
- 队列(优先队列)
- 树
- 图

排序

查找

- 二分查找

字符串

递归

- [尾调用优化](http://www.ruanyifeng.com/blog/2015/04/tail-call.html)

参考资料

  1. 剑指Offer学习
  2. https://github.com/Wang-Jun-Chao/leetcode