https://leetcode.com/problems/max-area-of-island/
class Solution {
int M, N;
public int maxAreaOfIsland(int[][] grid) {
M = grid.length;
N = grid[0].length;
boolean[][] visited = new boolean[M][N];
int result = 0;
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
if (!visited[i][j]) {
result = Math.max(result, dfs(grid, i, j, visited));
}
}
}
return result;
}
public int dfs(int[][] board, int i, int j, boolean[][] visited) {
if (i < 0 || i == M || j < 0 || j == N || visited[i][j]) return 0;
visited[i][j] = true;
int result = 0;
if (board[i][j] == 1) {
result += 1;
result += dfs(board, i - 1, j, visited);
result += dfs(board, i + 1, j, visited);
result += dfs(board, i, j - 1, visited);
result += dfs(board, i, j + 1, visited);
}
return result;
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/sinat_42483341/article/details/121250964
内容来源于网络,如有侵权,请联系作者删除!