This commit is contained in:
kkunkka
2025-07-15 21:14:30 +08:00
parent f0149542a3
commit 9a2a163f66

View File

@@ -0,0 +1,53 @@
package com.dota.gridGraph._417;
import java.util.ArrayList;
import java.util.List;
class Solution {
boolean a = false, b = false;
public List<List<Integer>> pacificAtlantic(int[][] heights) {
var book = new boolean[heights.length][heights[0].length];
for (int i = 0; i < book.length; i++) {
book[i] = new boolean[heights[0].length];
}
var res = new ArrayList<List<Integer>>();
for (int i = 0; i < heights.length; i++) {
for (int j = 0; j < heights[i].length; j++) {
a = false;
b = false;
dfs(i, j, heights, book, heights[i][j]);
if (a&&b) {
res.add(List.of(i,j));
}
}
}
return res;
}
void dfs(int i, int j, int[][] heights, boolean[][] book, int last) {
if (a && b) return;
if (i < 0 || j < 0) {
a = true;
return;
}
if (i >= heights.length || j >= heights[0].length) {
b = true;
return;
}
if (book[i][j]) {
return;
}
if (heights[i][j] > last) {
return;
}
book[i][j] = true;
dfs(i + 1, j, heights, book, heights[i][j]);
dfs(i - 1, j, heights, book, heights[i][j]);
dfs(i, j + 1, heights, book, heights[i][j]);
dfs(i, j - 1, heights, book, heights[i][j]);
book[i][j] = false;
}
}