Skip to content

Commit 2876bbc

Browse files
committed
Runtime: 236 ms (Top 95.64%) | Memory: 8.4 MB (Top 7.64%)
1 parent 5f86a0b commit 2876bbc

File tree

1 file changed

+43
-42
lines changed

1 file changed

+43
-42
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,47 @@
1+
// Runtime: 236 ms (Top 95.64%) | Memory: 8.4 MB (Top 7.64%)
12
class Solution {
23
public:
3-
int maxgold=0;
4-
int m,n;
5-
void gold(int i,int j,vector<vector<int>>& grid,vector<vector<int>>& vis,int count){
6-
// Down
7-
if(i+1<m && !vis[i+1][j] && grid[i+1][j]){
8-
vis[i][j]=1;
9-
gold(i+1,j,grid,vis,count+grid[i+1][j]);
10-
vis[i][j]=0;
11-
}
12-
// Left
13-
if(j-1>=0 && !vis[i][j-1] && grid[i][j-1]){
14-
vis[i][j]=1;
15-
gold(i,j-1,grid,vis,count+grid[i][j-1]);
16-
vis[i][j]=0;
17-
}
18-
// Right
19-
if(j+1<n && !vis[i][j+1] && grid[i][j+1]){
20-
vis[i][j]=1;
21-
gold(i,j+1,grid,vis,count+grid[i][j+1]);
22-
vis[i][j]=0;
23-
}
24-
// Up
25-
if(i-1>=0 && !vis[i-1][j] && grid[i-1][j]){
26-
vis[i][j]=1;
27-
gold(i-1,j,grid,vis,count+grid[i-1][j]);
28-
vis[i][j]=0;
29-
}
30-
maxgold=max(maxgold,count);
31-
}
4+
int maxgold=0;
5+
int m,n;
6+
void gold(int i,int j,vector<vector<int>>& grid,vector<vector<int>>& vis,int count){
7+
// Down
8+
if(i+1<m && !vis[i+1][j] && grid[i+1][j]){
9+
vis[i][j]=1;
10+
gold(i+1,j,grid,vis,count+grid[i+1][j]);
11+
vis[i][j]=0;
12+
}
13+
// Left
14+
if(j-1>=0 && !vis[i][j-1] && grid[i][j-1]){
15+
vis[i][j]=1;
16+
gold(i,j-1,grid,vis,count+grid[i][j-1]);
17+
vis[i][j]=0;
18+
}
19+
// Right
20+
if(j+1<n && !vis[i][j+1] && grid[i][j+1]){
21+
vis[i][j]=1;
22+
gold(i,j+1,grid,vis,count+grid[i][j+1]);
23+
vis[i][j]=0;
24+
}
25+
// Up
26+
if(i-1>=0 && !vis[i-1][j] && grid[i-1][j]){
27+
vis[i][j]=1;
28+
gold(i-1,j,grid,vis,count+grid[i-1][j]);
29+
vis[i][j]=0;
30+
}
31+
maxgold=max(maxgold,count);
32+
}
3233

33-
int getMaximumGold(vector<vector<int>>& grid) {
34-
m=grid.size();
35-
n=grid[0].size();
36-
for(int i=0;i<m;i++){
37-
for(int j=0;j<n;j++){
38-
if(grid[i][j]){
39-
vector<vector<int>>vis(m,vector<int>(n,0));
40-
gold(i,j,grid,vis,grid[i][j]);
41-
}
42-
}
43-
}
44-
return maxgold;
45-
}
34+
int getMaximumGold(vector<vector<int>>& grid) {
35+
m=grid.size();
36+
n=grid[0].size();
37+
for(int i=0;i<m;i++){
38+
for(int j=0;j<n;j++){
39+
if(grid[i][j]){
40+
vector<vector<int>>vis(m,vector<int>(n,0));
41+
gold(i,j,grid,vis,grid[i][j]);
42+
}
43+
}
44+
}
45+
return maxgold;
46+
}
4647
};

0 commit comments

Comments
 (0)