并查集/dfs解决——leetcode每日一题——1020飞地的数量
文章目录题目描述题目解析解题代码
题目描述
题目链接
题目解析
一、以边界值为对象进行搜索解决
一开始很快就想到用比较暴力的直接dfs深搜,然后就超时了。
注意此题由于以 1 是否能延申到整个边界以外来判断是否为有效的 1 所以我们需要取巧,应该以所有边界的 1 为对象先把所有能超出的 1 搜出来,然后剩余的 1 就是答案了。
二、并查集合并+是否接壤边界属性更新
创建一个并查集,用一维数组存下所有二维数组的元素,同时再增加一个一维数组用于判断是否边界接壤,每次 merge 操作的时候判断需要同时执行合并
原创
2022-02-12 20:08:29 ·
528 阅读 ·
0 评论