题目分析
这道题目是一个集合问题,相等的变量位于同一个集合之中,判断不相等的变量是否存在于同一个集合之中,集合之间的查询要想到并查集。
并查集
先将相等关系进行处理,把所有的变量分成不同的集合,最后再遍历不等关系,判断不相等的两个遍历是否存在于同一个集合之中。
1 | class UnionFind: |
刷题总结
此题还可以使用BFS或者DFS求解,类似于岛屿问题,将这些变量分成不同的集合,但是因为还需要判断变量之间的不等号关系,即判断变量之间是否不在同一个集合,如果使用BFS或者DFS还需要将每一组不等号去搜索两个变量是否为同一个集合,而并查集每个元素都有一个老大,因此比较两个老大是否为同一个就可以比较是否在同一个集合中,思路清晰,代码也很简单。