417. Pacific Atlantic Water Flow
来源:互联网 发布:支持php的web服务器 编辑:程序博客网 时间:2024/05/01 08:00
这道题起初我的思路,是深度搜索每一个点,由高往低,看最终是否到达边界,我现在的解参考了标准答案,思路是一样的,当代码也有很多不同,就是从边界开始深搜,用两个数组分别保存能连接p大洋和a大洋的点,如果这个点在这两个数组,这就是我们要找的点。
public class Solution { public List<int[]> pacificAtlantic(int[][] matrix) { List<int[]> list = new ArrayList<>(); int len = matrix.length; if(len<=0)return list; int width = matrix[0].length; boolean[][] pacific = new boolean[len][width]; boolean[][] Atlantic = new boolean[len][width]; for (int j = 0; j < width; j++) { dfs(matrix, 0, j, pacific); dfs(matrix,len-1,j,Atlantic); } for (int j=0;j<len;j++){ dfs(matrix,j,0,pacific); dfs(matrix,j,width-1,Atlantic); } for (int i=0;i<len;i++) for (int j=0;j<width;j++){ if (pacific[i][j]&&Atlantic[i][j]){ list.add(new int[]{i,j}); } } return list; } private void dfs(int[][] matrix, int y, int x, boolean[][] visited) { visited[y][x] = true; int[] dx = {1, -1, 0, 0}; int[] dy = {0, 0, 1, -1}; for (int i = 0; i < 4; i++) { int xx = x + dx[i]; int yy = y + dy[i]; if (xx >= 0 && xx < matrix[0].length && yy >= 0 && yy < matrix.length && matrix[yy][xx] >= matrix[y][x] && !visited[yy][xx]) { dfs(matrix, yy, xx, visited); } } }}
0 0
- 417. Pacific Atlantic Water Flow
- 417. Pacific Atlantic Water Flow
- 417. Pacific Atlantic Water Flow
- 417. Pacific Atlantic Water Flow
- 417. Pacific Atlantic Water Flow
- 417. Pacific Atlantic Water Flow
- 417. Pacific Atlantic Water Flow
- 417. Pacific Atlantic Water Flow
- 417. Pacific Atlantic Water Flow
- 417. Pacific Atlantic Water Flow
- 417. Pacific Atlantic Water Flow
- Pacific Atlantic Water Flow
- LeetCode—417. Pacific Atlantic Water Flow
- Leetcode-417. Pacific Atlantic Water Flow
- LeetCode 417. Pacific Atlantic Water Flow 题解
- 417. Pacific Atlantic Water Flow dfs
- 【Leetcode】417. Pacific Atlantic Water Flow
- leetcode 417. Pacific Atlantic Water Flow
- 面向对象的三的特性:封装 继承 多态
- Java内存模型FAQ
- ionic
- 【LeetCode231算法/编程练习C++】--判断是否是2的整数次幂 //按位与&的用处
- MyWebSQL - Draft
- 417. Pacific Atlantic Water Flow
- LaunchScreen.storyboard: The document “(null)” requires Xcode 8.0 or later
- 关于List,ArrayList中remove(object obj)方法不能删除对象问题
- 魔术索引II
- arcpy实现重排地块号
- 服务器请求微信后台(api.weixin.qq.com)过慢处理
- 质量控制之室内质控(IQC)和室间质评(EQA)
- 仿京东天猫的下拉刷新
- (十六)备忘录模式详解(都市异能版)