数据结构笔记
文亘习丶
这个作者很懒,什么都没留下…
展开
-
区间问题1——从零开始引出树状数组
首先要明确的是,树状数组和线段树都是用来解决规模相对较大的区间问题的,区间问题就是,给一串数据,他们都属于一个范围内,我们需要从这个大的范围内找到一个更小的范围,去查询,修改或者计算给出的数据在这个小范围内的相关信息(最大最小值,和等等)。例如:给出一个数列,让你求出该数列中第x项到第y项(x<y)之间的最小值,给某个数加上a,或者求x项到y项的和。简单的思路有两个:最暴力的方法自然是全部存入一个数组,然后根据下标来做到需要做的事:假设数列有n个数,如果是需要修改某个值,那只需要找到对应的原创 2020-07-23 09:33:20 · 240 阅读 · 0 评论 -
带路径压缩的并查集
如字面理解,并是合并,查是可查,也就是这种构建方法可以很轻易的实现合并和查找几个元素是否属于同一个集合。原理如下:首先有若干个元素,每个元素之间可能存在着两两之间的直接联系,也可能存在间接联系,但只要存在联系就属于同一个集合。这可以形象化的理解为族谱/联盟,每个元素可能是另一个元素的祖先/首领(直接联系),也可能是另一个元素的隔代祖先/首领的首领(间接联系),但他们都属于一个家族/联盟,当然两个元素可能没有任何直接或间接的关系,即属于不同的集合。而并查集的目的,就是为了高效建立和区分这些元素之间的所属原创 2020-07-13 11:08:11 · 286 阅读 · 0 评论