汇中建设 官方网站,深圳福步外贸论坛,专业建设信息化网站资源,如何快速制作一个网站根据并查集练习 —岛屿数量的问题再次扩展#xff1a; 原题是给定一个二维数组matrix#xff08;char[][]#xff09;#xff0c;里面的值不是1就是0#xff0c;上、下、左、右相邻的1认为是一片岛。返回matrix中岛的数量。 扩展为#xff1a;如果是中国的地图#xff0…根据并查集练习 —岛屿数量的问题再次扩展 原题是给定一个二维数组matrixchar[][]里面的值不是1就是0上、下、左、右相邻的1认为是一片岛。返回matrix中岛的数量。 扩展为如果是中国的地图1表示沙砾0表示水。这种情况下matrix数组会非常非常大怎么采用分治的思想来求土地岛屿的数量。
总的来说是进行拆分分别求出每一块的土地数量后再次进行合并。比如说二维数组如图所示 它是一个岛但是太大了如何进行拆分以及整合。 可以在中间任意位置进行切割此时左右两边互相不知道信息分别拆分左侧可拆分出来A,B两个岛屿右侧可拆分出来C,D,E三个岛屿拆分的同时收集边界信息看那些岛屿根据图中颜色划分属于哪个边界。A,B,C,D,E共5个样本而后根据边界找parent。如果不相等边界union。