刷题-Leetcode-面试题 08.10. 颜色填充

面试题 08.10. 颜色填充

题目链接

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/color-fill-lcci/submissions/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题目分析

参考链接:十分简单的递归代码解决问题
image[sr][sc]==initColor 为周围区域

class Solution {
public:
    void backtracking(vector<vector<int>>& image, int sr, int sc, int newColor , int initColor){//在[sr,sc]上填newcolor
        if(sr < 0 || sc < 0 || sr >= image.size() || sc >= image[0].size() ||image[sr][sc]!=initColor){
            return ; 
        }
        image[sr][sc] = newColor;
        backtracking(image, sr + 1, sc, newColor, initColor);
        backtracking(image, sr - 1, sc, newColor, initColor);
        backtracking(image, sr, sc + 1, newColor, initColor);
        backtracking(image, sr, sc - 1, newColor, initColor);
    }
    vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int newColor) {
        int initColor = image[sr][sc];
        if(newColor == initColor) return image;
        backtracking(image, sr, sc, newColor, initColor);
        return image;
    }
};

你可能感兴趣的:(#,回溯,leetcode,算法,职场和发展)