diff options
author | Jack Sangdahl <jack@pngu.org> | 2025-03-10 00:36:13 -0600 |
---|---|---|
committer | Jack Sangdahl <jack@pngu.org> | 2025-03-10 00:36:13 -0600 |
commit | 7c60dee83b436e8e8a667bf9f191beced8de4fc3 (patch) | |
tree | eb7a24ee2067f92245c57bb118e85a1baf15df50 /pacific_atlantic_water_flow.cpp | |
parent | 5d7cdc215e4ba1ec4cbb24c084cccb5e5e641468 (diff) | |
download | leetcode-master.tar.gz leetcode-master.zip |
Diffstat (limited to 'pacific_atlantic_water_flow.cpp')
-rw-r--r-- | pacific_atlantic_water_flow.cpp | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/pacific_atlantic_water_flow.cpp b/pacific_atlantic_water_flow.cpp deleted file mode 100644 index 8876d9f..0000000 --- a/pacific_atlantic_water_flow.cpp +++ /dev/null @@ -1,38 +0,0 @@ -#include "leetcode.h" - -class Solution { -public: - vvd pacificAtlantic(vvd & heights) { - n = heights.size(); - m = heights[0].size(); - vvd(bool) flag1(n, vector<bool>(m)), flag2(n, vector<bool>(m)); - vvd ans; - for (int i = 0; i < n; i++) - dfs(heights, flag1, i, 0); - for (int i = 1; i < m; i++) - dfs(heights, flag1, 0, i); - for (int i = 0; i < n; i++) - dfs(heights, flag2, i, m - 1); - for (int i = 0; i < m - 1; i++) - dfs(heights, flag2, n - 1, i); - for (int i = 0; i < n; i++) - for (int j = 0; j < m; j++) - if (flag1[i][j] && flag2[i][j]) - ans.push_back({i, j}); - return ans; - } - -private: - int n, m; - void dfs(vvd & grid, vvd(bool) & flag, int x, int y) { - flag[x][y] = true; - if (x - 1 >= 0 && !flag[x - 1][y] && grid[x - 1][y] >= grid[x][y]) - dfs(grid, flag, x - 1, y); - if (x + 1 < n && !flag[x + 1][y] && grid[x + 1][y] >= grid[x][y]) - dfs(grid, flag, x + 1, y); - if (y - 1 >= 0 && !flag[x][y - 1] && grid[x][y - 1] >= grid[x][y]) - dfs(grid, flag, x, y - 1); - if (y + 1 < m && !flag[x][y + 1] && grid[x][y + 1] >= grid[x][y]) - dfs(grid, flag, x, y + 1); - } -}; |