Skip to content

Commit f18f0b9

Browse files
authored
Update 778-swim-in-rising-water.js
1 parent 8c17592 commit f18f0b9

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

778-swim-in-rising-water.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,42 @@ function dfs(grid, visited, dir, waterHeight, row, col, n) {
4040
return false;
4141
}
4242

43+
// another
44+
45+
/**
46+
* @param {number[][]} grid
47+
* @return {number}
48+
*/
49+
const dirs = [[-1, 0], [1, 0], [0, 1], [0, -1]];
50+
const swimInWater = grid => {
51+
let time = 0;
52+
let N = grid.length;
53+
const visited = new Set();
54+
while (!visited.has(N * N - 1)) {
55+
visited.clear();
56+
dfs(grid, 0, 0, time, visited);
57+
time++;
58+
}
59+
return time - 1;
60+
};
61+
62+
function dfs(grid, i, j, time, visited) {
63+
if (
64+
i < 0 ||
65+
i > grid.length - 1 ||
66+
j < 0 ||
67+
j > grid[0].length - 1 ||
68+
grid[i][j] > time ||
69+
visited.has(i * grid.length + j)
70+
)
71+
return;
72+
visited.add(i * grid.length + j);
73+
for (let dir of dirs) {
74+
dfs(grid, i + dir[0], j + dir[1], time, visited);
75+
}
76+
}
77+
78+
4379
// another
4480

4581
/**

0 commit comments

Comments
 (0)