flood_fill 算法|图形渲染

flood fill 算法常常用来找极大连通子图,这是必须掌握的基本算法之一!

图形渲染

在这里插入图片描述
在这里插入图片描述

算法原理

  • 我们可以利用DFS遍历数组
  • 把首个数组的值记为color,然后上下左右四个方向遍历二维数组数组
  • 如果其他方块的值不等于color 或者越界就剪枝 return

代码实现

class Solution {
public:
   
    int row,col;
    int color;
    bool visted[50][50];
    int dx[4]={0,0,-1,1};
    int dy[4]={-1,1,0,0};
    void dfs(vector<vector<int>>& image, int sr, int sc, int new_color)
    {
        if( sr>= row || sr < 0 || sc >= col || sc < 0||image[sr][sc] != color||visted[sr][sc] )
        {
            return ;
        }
        image[sr][sc] = new_color;
        visted[sr][sc] = true;
        for(int i = 0; i< 4; i++)
        {
            dfs(image,sr+dx[i],sc+dy[i],new_color);
        }
    }
    vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int new_color) {
        color = image[sr][sc];
        row = image.size();
        col = image[0].size();
        dfs(image,sr,sc,new_color);
       
        return image;
        
    }
};

魔鬼细节

dx dy数组用来干嘛的?

dx dy可以看作 x方向 和 y 方向的向量,sr+dx[i],sc+dy[i] 用来合成四个方向。
我们输入 dx 和 dy 数组时只需要对应位置只有一个零,1和-1的先后顺序不用管
dx={0,1,-1,0} ;
dy = {-1,0,0,1};
这个数组合成的涵义是 y 方向先 -1 ,x方向 +1 ,x方向-1,y方向+1

visted数组用来干嘛的?

为了避免往复走
从逻辑上每个节点只需要走一次即可

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-09 06:56:07       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-09 06:56:07       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-09 06:56:07       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-09 06:56:07       18 阅读

热门阅读

  1. 服务器挖矿病毒查杀排查手册

    2024-04-09 06:56:07       13 阅读
  2. AcWing798. 差分矩阵

    2024-04-09 06:56:07       12 阅读
  3. 在 Visual Studio Code (VSCode) 中隐藏以 . 开头的文件

    2024-04-09 06:56:07       13 阅读
  4. 力扣经典150题第十题:跳跃游戏二

    2024-04-09 06:56:07       10 阅读
  5. FPN网络

    FPN网络

    2024-04-09 06:56:07      13 阅读
  6. 「PHP系列」PHP 函数详解

    2024-04-09 06:56:07       18 阅读
  7. TypeScript尚硅谷学习

    2024-04-09 06:56:07       14 阅读
  8. Yocto - 如何给配方文件添加源码patch

    2024-04-09 06:56:07       15 阅读
  9. 【分布式】MIT 6.824 Lab 2C实现细节分析

    2024-04-09 06:56:07       13 阅读