题目分析
这种题目小伙伴们应该见过很多了,直接并查集的模板套用即可。小伙伴先看一下能否顺利写出并查集的模板。
并查集
并查集不过多介绍,还有不会的小伙伴可以参考并查集。
本题的思路是:
- 首先将每个区域的面积求出来
- 遍历所有的点,若该点为1,则就是该区域所对应的面积。如果该点为0,将该点变为1,此时计算上下左右的面积之和是该区域对应的面积。
- 这里有一个易错点,就是上下左右可能都是同一个区域,记得不要重复计算,可以根据并查集中的root数组来判断是否是同一个区域。
因为引入了rank数组,算法的**时间复杂度为O(mn),空间复杂度为O(mn)**。
1 | class Solution { |
刷题总结
并查集同学们一定要会默写,这是面试、比赛、刷题中的利器。