25. As Far from Land as Possible
Input: grid = [[1,0,1],[0,0,0],[1,0,1]]
Output: 2
Explanation: The cell (1, 1) is as far as possible from all the land with distance 2.Input: grid = [[1,0,0],[0,0,0],[0,0,0]]
Output: 4
Explanation: The cell (2, 2) is as far as possible from all the land with distance 4.Solution: (Brute Force)
class Solution
{
public:
int dfs(vector<vector<int>> &grid, int x, int y)
{
int near = INT_MAX;
for (int i = 0; i < grid.size(); i++)
{
for (int j = 0; j < grid[0].size(); j++)
{
if (grid[i][j] == 1)
{
int dist = abs(x - i) + abs(y - j);
near = min(near, dist);
}
}
}
return near;
}
int maxDistance(vector<vector<int>> &grid)
{
int res = INT_MIN;
for (int i = 0; i < grid.size(); i++)
{
for (int j = 0; j < grid[0].size(); j++)
{
if (grid[i][j] == 0)
{
int dist = dfs(grid, i, j);
res = max(res, dist);
}
}
}
if(res == INT_MAX || res == INT_MIN){
return -1;
}
return res;
}
};Solution: (BFS)

Last updated