Flood Fill LeetCode solution in C++

1
class Solution {
2
public:
3
vector<vector<int>> paths = {{0, 1}, {0, -1}, {-1, 0}, {1, 0}};
4
bool check(int i, int j, int n, int m) {
5
if (i >= n or i < 0 or j >= m or j < 0) return false;
6
return true;
7
}
8
void solve(vector<vector<int>> &image, int sr, int sc, int color, int orig) {
9
int n = image.size(), m = image[0].size();
10
image[sr][sc] = color;
11
for (int i = 0; i < 4; i++) {
12
int new_sr = paths[i][0] + sr;
13
int new_sc = paths[i][1] + sc;
14
if (check(new_sr, new_sc, n, m) == true and image[new_sr][new_sc] == orig) {
15
solve(image, new_sr, new_sc, color, orig);
16
}
17
}
18
}
19
vector<vector<int>> floodFill(vector<vector<int>> &image, int sr, int sc, int color) {
20
if (color == image[sr][sc]) return image;
21
int orig = image[sr][sc];
22
solve(image, sr, sc, color, orig);
23
return image;
24
}
25
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0