算法与数据结构(LeetCode解题)
文章平均质量分 55
学习常见的算法,数据结构,通过刷题LeetCode来巩固提升。以进大厂为目标。
陈彬_smile
待到山花烂漫时,她在丛中笑。
展开
-
BFS广度优先算法框架
BFS的核心思想,就是把一些问题抽象成图,从一个点开始向四周扩散。一般来说,我们写BFS算法都是用队列这种数据结构,每次将一个节点周围的所有节点加入队列。 BFS相对DFS最主要区别是:BFS找到的路径一定是最短的,但代价就是空间复杂度比DFS大很多。 BFS出现的常见场景,问题的本质就是在一幅图中找到起点start到终点target的最近距离。 记住下面这个框架就ok了: //计算从起点start到终点target的最近距离 int BFS(Node start,Node target){原创 2021-08-25 00:00:42 · 228 阅读 · 0 评论 -
数据结构和算法的框架思维
从整体到细节,自顶向下,从抽象到具体的框架思维都是通用的,不只是学习数据结构和算法,学习其他知识都是高效的。 1.数据结构的存储方式 数据结构的存储方式只有两种,数组(顺序存储)和链表(链式存储)。 散列表,栈,队列,堆,树,图等等都是“上层建筑”,而数组和链表才是“基础结构”。 比如:队列,栈,这两种数据结构既可以用数组,也可以用链表来实现。用数组实现就要处理扩容,缩容的问题;用链表实现,就没有这个问题,但是需要更多的内存空间存储节点指针。 图,的两种表示方法,邻接表就是链表,邻接矩阵就是二维数原创 2021-07-10 17:39:31 · 178 阅读 · 1 评论