3
int cal(vector<vector<int>> &grid, int i, int j, int &m, int &n) {4
if (i == m || j == n || i < 0 || j < 0 || grid[i][j] == 0) return 0;6
return 1 + cal(grid, i, j + 1, m, n) + cal(grid, i + 1, j, m, n) + cal(grid, i, j - 1, m, n) +7
cal(grid, i - 1, j, m, n);9
int maxAreaOfIsland(vector<vector<int>> &grid) {10
int m = grid.size(), n = grid[0].size(), maxArea = 0;11
for (int i = 0; i < m; i++) {12
for (int j = 0; j < n; j++) {13
if (grid[i][j] == 1) {15
area = cal(grid, i, j, m, n);16
maxArea = max(maxArea, area);