查找图形算法的封闭部分
Finding enclosed sections of a graph algorithm
给定一张由红色和绿色像素组成的 30 x 30 图像,存储为 0 和 1 的数组,其中 1 为红色,0 为绿色。
图像以绿色开始,然后在顶部绘制了随机的红色图案。
图像最外面的所有像素也都涂成红色。
问题是如何用红色填充未连接到最大绿色口袋的每个绿色口袋?
Get/write 一种洪水填充算法,从某个像素开始,用不同的值填充所有连接的像素,并在这样做的同时对像素进行计数。
有一个 int biggestSize = 0
和一个具有给定初始值的 Point biggestStartPoint = null
变量。
扫描图片。
当您到达绿色像素时,用蓝色填充。
如果该填充的计数大于biggestSize
,则用红色填充旧的最大区域(从biggestStartPoint
开始)。将新计数和起始像素存储在 biggestSize
和 biggestStartPoint
.
中
如果计数没有变大,用红色填充(现在是蓝色的)区域,并保持变量不变。
最后,用绿色淹没最大的区域。
给定一张由红色和绿色像素组成的 30 x 30 图像,存储为 0 和 1 的数组,其中 1 为红色,0 为绿色。
图像以绿色开始,然后在顶部绘制了随机的红色图案。
图像最外面的所有像素也都涂成红色。
问题是如何用红色填充未连接到最大绿色口袋的每个绿色口袋?
Get/write 一种洪水填充算法,从某个像素开始,用不同的值填充所有连接的像素,并在这样做的同时对像素进行计数。
有一个 int biggestSize = 0
和一个具有给定初始值的 Point biggestStartPoint = null
变量。
扫描图片。
当您到达绿色像素时,用蓝色填充。
如果该填充的计数大于biggestSize
,则用红色填充旧的最大区域(从biggestStartPoint
开始)。将新计数和起始像素存储在 biggestSize
和 biggestStartPoint
.
如果计数没有变大,用红色填充(现在是蓝色的)区域,并保持变量不变。
最后,用绿色淹没最大的区域。