Java实现 LeetCode 417 太平洋大西洋水流问题
417. 太平洋大西洋水流问题
给定一个 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]] (上图中带括号的单元).
class Solution {private int row, col;private int[][] grid;private List<List<Integer>> result = new ArrayList<>();public List<List<Integer>> pacificAtlantic(int[][] matrix) {row = matrix.length;if (row == 0) {return result;}col = matrix[0].length;grid = new int[row][col];for (int i = 0; i < row; i++) {helper(matrix, i, 0, 1);}for (int j = 0; j < col; j++) {helper(matrix, 0, j, 1);}for (int i = 0; i < row; i++) {helper(matrix, i, col - 1, 2);}for (int j = 0; j < col; j++) {helper(matrix, row - 1, j, 2);}return result;}private void helper(int[][] matrix, int i, int j, int v) {if (grid[i][j] == v || grid[i][j] == 3) {return;}grid[i][j] += v;if (grid[i][j] == 3) {List<Integer> temp = new ArrayList<>();temp.add(i);temp.add(j);result.add(temp);}if (i != 0 && matrix[i - 1][j] >= matrix[i][j]) {helper(matrix, i - 1, j, v);}if (j != 0 && matrix[i][j - 1] >= matrix[i][j]) {helper(matrix, i, j - 1, v);}if (i != row - 1 && matrix[i + 1][j] >= matrix[i][j]) {helper(matrix, i + 1, j, v);}if (j != col - 1 && matrix[i][j + 1] >= matrix[i][j]) {helper(matrix, i, j + 1, v);}}}
Java实现 LeetCode 417 太平洋大西洋水流问题相关推荐
- LeetCode 417.太平洋大西洋水流问题
LeetCode 417.太平洋大西洋水流问题 有一个 m × n 的长方形岛屿,与 太平洋 和 大西洋 相邻. "太平洋" 处于大陆的左边界和上边界,而 "大西洋&qu ...
- LeetCode 417. 太平洋大西洋水流问题--BFS
太平洋大西洋水流问题 给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度."太平洋"处于大陆的左边界和上边界,而"大西洋"处于大陆的右边界和下 ...
- LeetCode 417. 太平洋大西洋水流问题 JAVA dfs
给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度."太平洋"处于大陆的左边界和上边界,而"大西洋"处于大陆的右边界和下边界. 规定水流只能按 ...
- LeetCode 417. 太平洋大西洋水流问题(BFS/DFS)
文章目录 1. 题目 2. 解题 2.1 BFS 广度优先搜索 2.2 DFS 深度优先搜索 1. 题目 给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度. "太平洋&q ...
- LeetCode 417 太平洋大西洋水流问题
题目描述 给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度."太平洋"处于大陆的左 边界和上边界,而"大西洋"处于大陆的右边界和下边界.规定 ...
- LeetCode 417. 太平洋大西洋水流问题【dfs】
题目描述 给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度."太平洋"处于大陆的左边界和上边界,而"大西洋"处于大陆的右边界和下边界. 规定 ...
- 417. 太平洋大西洋水流问题(medium) -力扣(leetCode)逆流而上,JS图的深度优先遍历算法
⚡️417. 太平洋大西洋水流问题⚡️ 给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度."太平洋"处于大陆的左边界和上边界,而"大西洋"处 ...
- 力扣417 太平洋大西洋水流问题
417. 太平洋大西洋水流问题 - 力扣(LeetCode) 核心: 建立两个和给定矩阵宽高一致的矩阵,分别表示太平洋和大西洋 从边界出发,深度优先遍历矩阵,继续递归前进行条件的限制:结点没有超出界限 ...
- 417. 太平洋大西洋水流问题(DFS)
417. 太平洋大西洋水流问题 题目 解题思路 代码 题目 给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度."太平洋"处于大陆的左边界和上边界,而" ...
最新文章
- Windows下获取视频设备的一种改进实现
- bootstrap框架下 单选按钮组的选中以及取值问题
- 线性代数 第二章 矩阵及其运算
- Android 使用SWIG生成Jni代码
- [Vue 牛刀小试]:第八章 - 组件的基础知识
- SQL Server:统计数据库中每张表的大小
- C++ 高级数据类型(一)—— 数组
- IBM AIX 5.3 系统管理 -- 系统启动过程详解
- selectprovider 分页_MyBatis使用@SelectProvider拼接sql语句
- c语言 文件游程统计,游程 码表 如何形成
- 【独家】孙茂松:从机器翻译到古诗生成
- 【C语言】用指针描述数组,实现冒泡法排序
- python中的turtle如何运行_python中turtle库的简单使用教程
- ipa在线下载安装(itms-services)
- u盘linux反应好慢,识别U盘很缓慢怎么办的八种解决方法
- 惠普P1100 series “打印机安装失败,未安装打印机”问题解决方法
- 头像制作抖音微信壁纸小程序搭建一个基于uniCloud阿里OSS对象存储的免费图床源码
- Prim的故事(一文搞懂Prim算法)
- 抖音音乐怎么下载 mp3格式转换器如何使用
- 【腾讯云 Finops Crane 集训营】Finops Crane-英雄之剑
热门文章
- 淘宝店铺宝贝批量复制工具
- Computational Intelligence Assisted Design -- In Industrial Revolution 4.0 (计算智能在工业4.0的应用) --绪论
- 88---Python 以符号的方式给出积分表达式,类似Mathematics
- O(nlogn) 求LIS(Longest Increasing Subsequence)方法的总结
- java基础知识之加强
- 计算机网络_实验16_网络故障导致环路
- GROMACS运行参数之em.mdp文件详解
- ipset如何与netfilter内核模块进行通信
- 用R语言理解洛必达法则
- DynamicModuleException: MENIFEST.MF文件未找到