算法就是这么简单(结束篇)
作者:
| 更新日期:算法就是这么简单系列结束了,说几句。
本文首发于公众号:天空的代码世界,微信号:tiankonguse
一、背景
大概2018年上半年的时候,我分享过《从零开始学算法系列》,文章如下:
这个系列介绍的理论性比较强,需要有一些算法基础的人才能看懂。
于是,2019年上半年,我开始分享《算法就是这么简单》系列。
这个系列涉及的知识比较基础,而且附带了很多算法题。
这里总结一下,大家想学习了,可以按照这个目录来学习练习。
二、数组篇
数组是程序语言中最基础的数据结构,在这个数据结构的基础上,可以衍生出很多问题来。
这里分了五篇文章来介绍数组相关的知识。
对于数组相关的算法,其实就那么多知识点。
学习之后,剩下的就是多练习了,不然就会发生看着会做,但是最终代码没实现出来。
三、栈与队列
算法题中,最常见的一类问题就是路径搜索题。
比如问一个点是否可以到达另一个点,或者一个点到达另一个点的最优路径是什么。
这些就需要使用栈或队列来解决。
这里分了四篇文章来介绍这个知识点。
学习了栈和队列,面对路径最优值问题与是否可以到达问题,你应该就可以快速选择正确的数据结构来解决问题了。
上周 Leetcode 第 141 场比赛的时候,就涉及一个 BFS 最优值问题。
有一个人问我为啥自己答案不对,我一看,他使用 DFS 做的。
使用错误的算法肯定不能得到正确的答案的,什么数据结构有什么样的特征,能够解决什么样的问题我们需要知道的。
当然,这里面涉及到一个因果关系,我在文章里讲了,这里就不赘述了,大家自己去读文章吧。
四、链表
对于链表,其实能够出的算法题就那几种题型,大家学会之后,以后要做的就是灵活变通了。
这里也分了四篇文章来介绍链表这个数据结构。
五、二叉树
在算法和数据结构中,树相关的算法和数据结构其实有很多的。
而二叉树算是最简单的数据结构了。
这里使用六篇文章来让大家入门二叉树。
六、其他
除了上面那种比较集中的算法或数据结构,还有一些比较基础的但是又比较简单的知识点。
比如递归、哈希表、map、二分查找等。
七、最后
算法和数据结构的基础知识已经分享的差不多了。
后面计划分初级、中级、高级三个等级来分别讲解各种数据结构或算法的实践题。
想学算法的,建议自己制定一个固定的时间学习这里分享的算法,等你都可以独立作出来的时候,你应该就可以超越大部分人了。
另外,我做的所有题都会分享在 github 上,也建议你参与我发起的《Leetcode算法互动编程》.
项目地址: https://github.com/tiankonguse/leetcode-solutions
-EOF-
本文首发于公众号:天空的代码世界,微信号:tiankonguse
如果你想留言,可以在微信里面关注公众号进行留言。