Find All Groups of Farmland LeetCode solution in Java

1
class Solution {
2
int[] arr;
3

4
public int[][] findFarmland(int[][] land) {
5
List<int[]> res = new ArrayList<>();
6
for (int i = 0; i < land.length; i++)
7
for (int j = 0; j < land[0].length; j++) {
8
if (land[i][j] == 1) {
9
arr = new int[] {i, j, 0, 0};
10
dfs(land, i, j);
11
res.add(arr);
12
}
13
}
14
return res.stream().map(i -> i).toArray(int[][]::new);
15
}
16

17
public void dfs(int[][] land, int i, int j) {
18
if (i < 0 || j < 0 || i >= land.length || j >= land[0].length || land[i][j] == 0) return;
19
arr[2] = Math.max(i, arr[2]);
20
arr[3] = Math.max(j, arr[3]);
21
land[i][j] = 0;
22
dfs(land, i - 1, j);
23
dfs(land, i, j + 1);
24
dfs(land, i + 1, j);
25
dfs(land, i, j - 1);
26
}
27
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0