文章链接: 并查集理论基础、 107. 寻找存在的路径
题目链接: 107. 寻找存在的路径
并查集理论基础
并查集可以解决的问题
并查集常用来解决连通性问题,就是当我们需要判断两个元素是否在同一个集合里的时候,我们就要想到用并查集。
并查集的两个功能:
1.将两个元素添加到一个集合中;
2.判断两个元素在不在同一个集合。
原理与相关代码
1.如何将两个元素添加到同一个集合中
2.find函数(寻根)
3.并查集初始化
4.如何判断两个元素是否在同一个集合里
路径压缩
定义:将非根节点的所有节点直接指向根节点。
并查集模板
并查集主要有三个功能:
1.寻找根节点,函数:find(int u),也就是判断这个节点的祖先节点是哪个;
2.将两个节点接入到同一个集合,函数:join(int u, int v),将两个节点连在同一个根节点上;
3.判断两个节点是否在同一个集合,函数:isSame(int u, int v),就是判断两个节点是不是同一个根节点。
107.寻找存在的路径
思路:
并查集模板题。