1 必须有个deepcopy才行,这样才不会修改原来的matrix中的值
2 上述方法时间复杂度是O(kmn),自然超时了
3 union find方法:在此题中,坐标(x,y)做为一个node,对于positions中的每一个position,都创建一个一对一的map,map的key和value都是这个坐标
4 对于每一个position,count每次加1,同时检查其上下左右,如果属于同一个union,相当于每次合并则count-1
5 union(x,y)的时候,如果x,y的root node是同一个,则直接返回0
6 接下来是根据x和y的rank来进行union
union find: 初始化时都初始化成自己,比如此题中,x和parent[x]都初始化成position的坐标
rank都初始化成0
检查当前点的上下左右坐标,看两个点是否是union在一起的
一定要判断这个,因为如果之前出现过的position