417 Pacific Atlantic Water Flow 太平洋大西洋水流
生活随笔
收集整理的這篇文章主要介紹了
417 Pacific Atlantic Water Flow 太平洋大西洋水流
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
詳見:https://leetcode.com/problems/pacific-atlantic-water-flow/description/
C++:
class Solution { public:vector<pair<int, int>> pacificAtlantic(vector<vector<int>>& matrix) {if (matrix.empty() || matrix[0].empty()){return {};}vector<pair<int, int>> res;int m = matrix.size(), n = matrix[0].size();vector<vector<bool>> pacific(m, vector<bool>(n, false));vector<vector<bool>> atlantic(m, vector<bool>(n, false));for (int i = 0; i < m; ++i){dfs(matrix, pacific, INT_MIN, i, 0);dfs(matrix, atlantic, INT_MIN, i, n - 1);}for (int i = 0; i < n; ++i){dfs(matrix, pacific, INT_MIN, 0, i);dfs(matrix, atlantic, INT_MIN, m - 1, i);}for (int i = 0; i < m; ++i){for (int j = 0; j < n; ++j){if (pacific[i][j] && atlantic[i][j]) {res.push_back({i, j});}}}return res;}void dfs(vector<vector<int>>& matrix, vector<vector<bool>>& visited, int pre, int i, int j){int m = matrix.size(), n = matrix[0].size();if (i < 0 || i >= m || j < 0 || j >= n || visited[i][j] || matrix[i][j] < pre){return;}visited[i][j] = true;dfs(matrix, visited, matrix[i][j], i + 1, j);dfs(matrix, visited, matrix[i][j], i - 1, j);dfs(matrix, visited, matrix[i][j], i, j + 1);dfs(matrix, visited, matrix[i][j], i, j - 1);} };?參考:https://www.cnblogs.com/grandyang/p/5962508.html
轉載于:https://www.cnblogs.com/xidian2014/p/8856421.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的417 Pacific Atlantic Water Flow 太平洋大西洋水流的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【读书笔记】简约至上-交互式设计四策略
- 下一篇: bit_length