给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度。“太平洋”处于大陆的左边界和上边界,而“大西洋”处于大陆的右边界和下边界。
规定水流只能按照上、下、左、右四个方向流动,且只能从高到低或者在同等高度上流动。
请找出那些水流既可以流动到“太平洋”,又能流动到“大西洋”的陆地单元的坐标。

提示:输出坐标的顺序不重要
m 和 n 都小于150示例:给定下面的 5x5 矩阵:太平洋 ~   ~   ~   ~   ~ ~  1   2   2   3  (5) *~  3   2   3  (4) (4) *~  2   4  (5)  3   1  *~ (6) (7)  1   4   5  *~ (5)  1   1   2   4  **   *   *   *   * 大西洋返回:[[0, 4], [1, 3], [1, 4], [2, 2], [3, 0], [3, 1], [4, 0]] (上图中带括号的单元).来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/pacific-atlantic-water-flow
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解:
1、利用深度搜索算法,注意要先判断边界条件及该点是否已经查看,避免死循环
2、从边界往四周搜索,即如果周围的水流比边界水流高,那么该点可以到达边界。
3、利用两个boolean类型数组分别代表太平洋和大西洋,搜索那些点可以分别达到大西洋和太平洋
4、最终取两个数组并集即答案

class Solution {boolean Atlantic[][];boolean Pacific[][];public List<List<Integer>> pacificAtlantic(int[][] matrix) {List<List<Integer>> res=new ArrayList<>();int row=matrix.length;if(row==0) return res;int col=matrix[0].length;Atlantic=new boolean[row][col]; Pacific=new boolean[row][col];for(int i=0;i<row;i++){dfs(matrix, Atlantic,i,col-1);dfs(matrix,Pacific,i,0);}    for(int i=0;i<col;i++){dfs(matrix,Atlantic,row-1,i);dfs(matrix,Pacific,0,i);}for(int i=0;i<matrix.length;i++){for(int j=0;j<matrix[i].length;j++){if(Atlantic[i][j]&&Pacific[i][j]){    List<Integer> tmp=new ArrayList<Integer>();tmp.add(i);tmp.add(j);res.add(tmp);}}}return res;}public void dfs(int matrix[][],boolean visit[][],int row,int col){if(row<0||row>=matrix.length||col<0||col>=matrix[row].length||visit[row][col])return;visit[row][col]=true;if(row-1>=0&&matrix[row][col]<=matrix[row-1][col])dfs(matrix,visit,row-1,col);if(row+1<matrix.length&&matrix[row][col]<=matrix[row+1][col])dfs(matrix,visit,row+1,col);if(col-1>=0&&matrix[row][col]<=matrix[row][col-1])dfs(matrix,visit,row,col-1);if(col+1<matrix[row].length&&matrix[row][col]<=matrix[row][col+1])dfs(matrix,visit,row,col+1);}
}

LeetCode 417. 太平洋大西洋水流问题 JAVA dfs相关推荐

  1. LeetCode 417. 太平洋大西洋水流问题【dfs】

    题目描述 给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度."太平洋"处于大陆的左边界和上边界,而"大西洋"处于大陆的右边界和下边界. 规定 ...

  2. LeetCode 417.太平洋大西洋水流问题

    LeetCode 417.太平洋大西洋水流问题 有一个 m × n 的长方形岛屿,与 太平洋 和 大西洋 相邻. "太平洋" 处于大陆的左边界和上边界,而 "大西洋&qu ...

  3. Java实现 LeetCode 417 太平洋大西洋水流问题

    417. 太平洋大西洋水流问题 给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度."太平洋"处于大陆的左边界和上边界,而"大西洋"处于大陆的 ...

  4. 417. 太平洋大西洋水流问题(DFS)

    417. 太平洋大西洋水流问题 题目 解题思路 代码 题目 给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度."太平洋"处于大陆的左边界和上边界,而" ...

  5. LeetCode 417. 太平洋大西洋水流问题--BFS

    太平洋大西洋水流问题 给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度."太平洋"处于大陆的左边界和上边界,而"大西洋"处于大陆的右边界和下 ...

  6. LeetCode 417. 太平洋大西洋水流问题(BFS/DFS)

    文章目录 1. 题目 2. 解题 2.1 BFS 广度优先搜索 2.2 DFS 深度优先搜索 1. 题目 给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度. "太平洋&q ...

  7. leetcode 417. Pacific Atlantic Water Flow | 417. 太平洋大西洋水流问题(DFS,经典“感染”思路)

    题目 https://leetcode.com/problems/pacific-atlantic-water-flow/ 题解 一开始的错误思路:(区分"主动"与"被动 ...

  8. LeetCode 417 太平洋大西洋水流问题

    题目描述 给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度."太平洋"处于大陆的左 边界和上边界,而"大西洋"处于大陆的右边界和下边界.规定 ...

  9. 417. 太平洋大西洋水流问题(medium) -力扣(leetCode)逆流而上,JS图的深度优先遍历算法

    ⚡️417. 太平洋大西洋水流问题⚡️ 给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度."太平洋"处于大陆的左边界和上边界,而"大西洋"处 ...

最新文章

  1. 我做 Fiori 开发经常使用的几个系统,不同的 SAP UI5 版本
  2. 更高效地刷OJ——String常用方法(一)
  3. 常用的系统架构 web服务器之iis,apache,tomcat三者之间的比较
  4. 思科修复NSA报告的Nexus 交换机DoS漏洞及其它
  5. SUSE12SP3-Mycat(2)Schema.xml配置详解
  6. SCCM 2012系列14 操作系统播发③
  7. Eclipse下载安装配置
  8. Idear集成maven环境
  9. CAD制图神器-CAD专用键盘
  10. php的mssql_connect+端口连接不了的问题
  11. hbase应用场景 java_Hbase Java API 使用
  12. Windows无法格式化改卷,改卷已脱机, 请尝试首先向改卷分配驱动器号或路径使其联机
  13. 如何成为数据分析师系列(二):可视化图表进阶
  14. 部署Kubernetes(k8s)时,为什么要关闭swap、selinux、firewall 防火墙?
  15. 提示计算机类型不匹配啥意思,提示:运行时错误“13”:类型不匹配。是什么意思刚装好...
  16. 串口服务器调试助手使用教程,comassistant串口调试助手使用说明.pdf
  17. RatingBar(星级评分条)
  18. 怎么在matlab 中制表符,matlab中用fprintf怎么写入空格 、制表符,回车换行等符号?...
  19. 使用霍金团队选择的服务器是一种什么感受
  20. ThinkJS 作者李成银:择善而从之,笃行致远

热门文章

  1. 中国军工产业发展规划及前景战略研究报告2021-2027年
  2. linux求两个文件的交集,并集,差集
  3. 一文读透GO语言的通道
  4. 部分景观指数的生态学意义
  5. 攻防世界——xff_referer
  6. 最近云端上MySql服务器被黑了,狠心把密码加密后花了20分钟修改好了。这回再被黑跟你姓
  7. CUMT第一轮双月赛Web题解
  8. 【SQL】cumt 数据库平台实践
  9. text、html、val、attr(Jquery取值方法)
  10. ubuntu安装AIR微博方法