Skip to content

Commit ece76f2

Browse files
authored
Merge pull request #1498 from elcabalero/patch-6
Minor changes to match video's code
2 parents a8550cb + 7c45efb commit ece76f2

File tree

1 file changed

+21
-31
lines changed

1 file changed

+21
-31
lines changed

Diff for: cpp/neetcode_150/12_advanced_graphs/swim_in_rising_water.cpp

+21-31
Original file line numberDiff line numberDiff line change
@@ -12,43 +12,33 @@ class Solution {
1212
public:
1313
int swimInWater(vector<vector<int>>& grid) {
1414
int n = grid.size();
15-
if (n == 1) {
16-
return 0;
17-
}
18-
1915
vector<vector<bool>> visited(n, vector<bool>(n));
16+
priority_queue<vector<int>, vector<vector<int>>, greater<vector<int>>> q;
17+
2018
visited[0][0] = true;
19+
q.push({grid[0][0], 0, 0});
20+
21+
vector<vector<int>> dirs = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
2122

22-
int result = max(grid[0][0], grid[n - 1][n - 1]);
23-
24-
priority_queue<vector<int>, vector<vector<int>>, greater<vector<int>>> pq;
25-
pq.push({result, 0, 0});
26-
27-
while (!pq.empty()) {
28-
vector<int> curr = pq.top();
29-
pq.pop();
30-
31-
result = max(result, curr[0]);
32-
33-
for (int i = 0; i < 4; i++) {
34-
int x = curr[1] + dirs[i][0];
35-
int y = curr[2] + dirs[i][1];
36-
37-
if (x < 0 || x >= n || y < 0 || y >= n || visited[x][y]) {
23+
while (!q.empty()){
24+
int currR = q.top()[1];
25+
int currC = q.top()[2];
26+
int currT = q.top()[0];
27+
q.pop();
28+
29+
if (currR == n - 1 && currC == n - 1)
30+
return currT;
31+
32+
for (auto& dir : dirs){
33+
int newR = currR + dir[0];
34+
int newC = currC + dir[1];
35+
if (newR < 0 || newR == n || newC < 0 || newC == n || visited[newR][newC])
3836
continue;
39-
}
40-
41-
if (x == n - 1 && y == n - 1) {
42-
return result;
43-
}
44-
45-
pq.push({grid[x][y], x, y});
46-
visited[x][y] = true;
37+
visited[newR][newC] = true;
38+
q.push({max(currT, grid[newR][newC]), newR, newC});
4739
}
4840
}
49-
41+
5042
return -1;
5143
}
52-
private:
53-
vector<vector<int>> dirs = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};
5444
};

0 commit comments

Comments
 (0)