老规矩,力扣的每日一题。
这次的题目比较简单,直接进行模拟就可以了。注释写的也比较清晰。
接着写了两道并查集的题目。并查集的题目根据模板写就行了。可以认为是找祖先或者找老大都行。大概分为以下三步:
1.对一开始的每个点进行初始化,则认为一开始的时候每个点的祖先都是自己本身,之后再根据题目给出的条件在第二步的时候进行找到真正的祖先。
2.递归找祖先,直接找到自己最老的那个祖先。
3.根据他们的祖先,对两个独立的点或者两个子集合进行合并。
两道题目如下:
这样写的时候,编译出错了,原因在于f数组的长度小了,之后改为如下的时候就通过了👇🏻
因为是添加了一条边,所以一定有一个环,找到这个环中的最后一条边,这条边就是要删除的边。可以通过判断两个点是否已经连通来进行判断。