LeetCode 695. Max Area of Island
原题链接
中等
作者:
VANHOPE
,
2023-03-19 17:13:03
,
所有人可见
,
阅读 168
C++ 代码
class Solution {
private:
bool visited[55][55];
int dx[5] = {-1, 1, 0, 0};
int dy[5] = {0, 0, -1, 1};
int res = 0;
int n, m;
int area = 0;
public:
void dfs(int x, int y, vector<vector<int>>& grid)
{
for(int i = 0; i < 4; ++i)
{
int nx = x + dx[i];
int ny = y + dy[i];
if(nx >= 0 && nx < n && ny >= 0 && ny < m && grid[nx][ny] == 1 && !visited[nx][ny])
{
visited[nx][ny] = true;
area += 1;
dfs(nx, ny, grid);
}
}
}
int maxAreaOfIsland(vector<vector<int>>& grid) {
n = grid.size();
m = grid[0].size();
for(int i = 0; i < n; ++i)
{
for(int j = 0; j < m; ++j)
{
if(!visited[i][j] && grid[i][j] == 1)
{
area = 1;
visited[i][j] = true;
dfs(i, j, grid);
res = max(area, res);
}
}
}
return res;
}
};
控制台