查找图形算法的封闭部分

Finding enclosed sections of a graph algorithm

给定一张由红色和绿色像素组成的 30 x 30 图像,存储为 0 和 1 的数组,其中 1 为红色,0 为绿色。

图像以绿色开始,然后在顶部绘制了随机的红色图案。

图像最外面的所有像素也都涂成红色。

问题是如何用红色填充未连接到最大绿色口袋的每个绿色口袋?

Get/write 一种洪水填充算法,从某个像素开始,用不同的值填充所有连接的像素,并在这样做的同时对像素进行计数。

有一个 int biggestSize = 0 和一个具有给定初始值的 Point biggestStartPoint = null 变量。

扫描图片。

当您到达绿色像素时,用蓝色填充。

如果该填充的计数大于biggestSize,则用红色填充旧的最大区域(从biggestStartPoint开始)。将新计数和起始像素存储在 biggestSizebiggestStartPoint.

如果计数没有变大,用红色填充(现在是蓝色的)区域,并保持变量不变。

最后,用绿色淹没最大的区域。