题目
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/
[…] 小旭讲解 LeetCode 733. 图像渲染 […]