详见: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

最新文章

  1. &quot;无法删除数据库,因为该数据库当前正在使用&quot;问题解决
  2. Mysql使用workbench迁移数据
  3. NFS挂载Android文件系统
  4. Character Controller (角色控制器) 中 Move()和SimpleMove() 的区别
  5. CentOS6.4_x86_开关机查看
  6. &lt;button&gt;会自动提交表单吗?
  7. Servlet中Service方法
  8. OC1_协议语句
  9. 2 weekend110的mapreduce介绍及wordcount + wordcount的编写和提交集群运行 + mr程序的本地运行模式
  10. BZOJ3039: 玉蟾宫&amp;wikioi2491 玉蟾宫
  11. 用if做了一个简单的猜拳游戏(做的不好还请指点,谢谢!)
  12. Android的布局优化之include、merge 、viewstub
  13. 第2次增加ssh 主机信任脚本
  14. Web API-路由(一)
  15. validation-api各注解的用法
  16. day12:装饰器的进阶
  17. 281A
  18. spring-boot-starter-actuator
  19. shell 命令 if [ -d filename] 判断文件
  20. JAVA中域、方法、类的可见性

热门文章

  1. Git撤销&amp;amp;回滚操作
  2. Cocos2d-X-3.0 之后的版本的环境搭建
  3. wampserver64安装时出现计算机缺少MCVR110.DLL无法安装等
  4. JDBC各种数据库连接URL关键代码
  5. wpa_supplicant介绍【转】
  6. UVALive3989 Ladies&#39; Choice —— 稳定婚姻问题 Gale - Shapely算法
  7. HDU2819 Swap —— 二分图最大匹配
  8. YTU 1099: Minesweeper
  9. HTTP传输二进制初探
  10. codeforces 688A A. Opponents(水题)