Advertisement

Flood Fill 是图像分割的经典算法--《泛洪算法》

阅读量:

题目要求:

一张image可通过一个二维整数数组进行描述,其中每个整数对应图像中的像素值(取值范围为0至65535)。已知一个坐标(sr, sc)表示洪水填充操作的起始位置(行和列),同时给定一个新的颜色值newColor,要求对整张图片执行“洪水填充”操作。在实现该操作时,需从起始像素点出发,并将所有与起始像素颜色一致且与其四邻域相连的像素点依次纳入处理范围,包括这些像素点所连接的其他具有相同颜色的四邻域像素点。最终将上述所有被选中的像素点的颜色替换为新的颜色值,并返回修改后的图像。

附:

  • image以及其第一维长度的取值范围在[1, 50]之间。
  • 所提供的起始坐标满足条件:0 <= sr < image.length0 <= sc < image[0].length
  • 每个像素的颜色值以及新颜色均属于 [0, 65535]区间内的整数。

思路:

本问题可转化为无向图的遍历过程,在实际处理过程中采用队列结构来实现广度优先搜索算法。相关参考内容见https://www.pianshen.com/article/172962944/的描述,解法使用了四邻域泛洪算法的非递归方式。

代码如下:

复制代码
 class Solution {

    
 public:
    
     /** * @para

全部评论 (0)

还没有任何评论哟~