题目分析
题目需要我们对元素进行合并操作与连通性查询操作,这是并查集的经典应用场景。并查集可以在近似 O(1)的时间复杂度内完成这两种操作,非常高效。
算法思路
初始化:将每个元素的父节点设为自己,表示每个元素自成一个集合。
查找函数:采用路径压缩的查找方式,找到元素的根节点,同时将路径上所有节点直接指向根,优化后续查询速度。
合并操作:当操作类型为 1 时,将两个元素所在的集合合并。
查询操作:当操作类型为 2 时,判断两个元素是否拥有相同的根节点,相同则连通,输出 Y,否则输出 N。
复杂度
时间复杂度近似
O(n+m)
代码如下 谢绝复制