小旭讲解 LeetCode 733. Flood Fill
小旭讲解 LeetCode 733. Flood Fill

题目

LeetCode 733. 图像渲染

思路

经典的 DFS 问题。

技巧:为了方便枚举某一个位置的上下左右,可以声明一个方向数组 int \ d[5] = \{0,1,0,-1,0\}

代码

class Solution {
public:
    void dfs(vector<vector<int>>& image, int sr, int sc, int oldColor, int newColor) {
        if (image[sr][sc] != oldColor) return;
        image[sr][sc] = newColor;
        int d[5] = {0,1,0,-1,0};
        for (int i=0;i<4;++i) {
            int nr=sr+d[i];
            int nc=sc+d[i+1];
            if (nr<0||nc<0||nr>=image.size()||nc>=image[0].size()) continue;
            dfs(image,nr,nc,oldColor,newColor);
        }
    }
    vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int newColor) {
        if (image[sr][sc]==newColor)return image;
        dfs(image,sr,sc,image[sr][sc],newColor);
        return image;
    }
};
欢迎分享,引用。若转载,请联系我,谢谢配合。
本文地址:https://qoogle.top/xiaoxu-tutorial-leetcode-733-flood-fill/
0 0 vote
Article Rating
Subscribe
提醒
guest
1 评论
Newest
Oldest Most Voted
Inline Feedbacks
View all comments

[…] 小旭讲解 LeetCode 733. 图像渲染 […]