Skip to content

Commit 2968756

Browse files
committed
Time: 108 ms (76.97%), Space: 9.1 MB (63.16%) - LeetHub
1 parent 827613c commit 2968756

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
class Solution {
2+
private:
3+
int dy[4] = {+0, +0, -1, +1};
4+
int dx[4] = {+1, -1, +0, +0};
5+
int dfs(vector<vector<int>>& grid, int r, int c, int i, int j) {
6+
if (i < 0 || i >= r || j < 0 || j >= c || grid[i][j] == 0) return 0;
7+
int mx = grid[i][j];
8+
int old = grid[i][j];
9+
grid[i][j] = 0;
10+
for (int d = 0; d < 4; d++) {
11+
mx = max(mx, old + dfs(grid, r, c, i + dx[d], j + dy[d]));
12+
}
13+
grid[i][j] = old;
14+
return mx;
15+
}
16+
17+
public:
18+
int getMaximumGold(vector<vector<int>>& grid) {
19+
int r = grid.size();
20+
int c = grid[0].size();
21+
int mx = 0;
22+
for (int i = 0; i < r; i++) {
23+
for (int j = 0; j < c; j++) {
24+
if (grid[i][j] != 0) {
25+
mx = max(mx, dfs(grid, r, c, i, j));
26+
}
27+
}
28+
}
29+
return mx;
30+
}
31+
};

0 commit comments

Comments
 (0)