2023年1月10日 星期二

733. Flood Fill

解題心得

如果一開始  image[sr][sc] 的顏色就跟 color 一樣,就不要往下了。卡在這邊好久。

程式碼

class Solution {
public:
    void helper(vector<vector<int>>& v, int target, int color, int sr, int sc)
    {
        if(!(0 <= sr && sr < v.size() && 0 <= sc && sc < v[0].size()))
            return;
        if(v[sr][sc] == target)
        {
            v[sr][sc] = color;
            helper(v, target, color, sr - 1, sc);
            helper(v, target, color, sr + 1, sc);
            helper(v, target, color, sr, sc - 1);
            helper(v, target, color, sr, sc + 1);
        }
    }
    vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int color) {
        if(image[sr][sc] != color)
            helper(image, image[sr][sc], color, sr, sc);
        return image;
    }
};

沒有留言:

張貼留言