leetcode 第924题 尽量减少恶意软件的传播 python解法
问题分析
最近在看并查集的概念,而leetcode第924题是一道可以用这种方法来解答的(不排除其它的方法)。具体如下:
并查集的概念最主要的就是将相互关联的对象连接起来,作为一个大的集合。而本题就可以将相互连接的节点放到同一个集合中,在这个集合中,只要有一个节点被病毒感染,那么集合中的其它节点也全部被感染。
此外,还有一个对后面的操作很重要的点就是统计每个集合中节点的总个数。在这里有一个公共节点的概念,公共节点指的是集合中所有节点都指向的节点。
为了构造节点集合以及每个节点包含的信息,这里用到了一个辅助数组nums,如下:
其中节点数组代表的是整个网络中所有的节点,而temp数组是对应的节点所指向的位置,比如节点0在temp中对应5,说明这个节点指向节点5(节点5为公共节点),节点3虽然指向节点9,但是节点9也指向节点5,所以节点5是节点3和节点9的公共节点。再看节点5,节点5在temp中对