1254 統計封閉島嶼的數目

2021-09-29 14:04:05 字數 860 閱讀 6659

深度優先搜尋(dfs)的題。因為邊界的陸地不算島嶼,所以搜尋的時候把邊界的陸地及與邊界相連的陸地去掉。然後對陣列進行遍歷,求出島嶼數即可。

方案一:

public int closedisland(int grid)   

for (int j = 0; j < grid[0].length; j++)

//尋找島嶼數量

int islandnum = 0;

for(int i = 0; i < grid.length; i++)

for (int j = 0; j < grid[i].length; j++)

if (grid[i][j] == 0)

return islandnum;

}private void searchisland (int grid, int x, int y)

方案二:

//判斷是否與邊界相連的標記

boolean flag;

//位移方向

int direction = , , , };

public int closedisland(int grid)

return islandnum;

}private void searchisland (int grid, int x, int y)

if(grid[x][y] == 1)

return;

grid[x][y] = 1;

for(int dir : direction)

searchisland(grid, x + dir[0], y + dir[1]);

}

1254 統計封閉島嶼的數目(dfs)

1.問題描述 有乙個二維矩陣 grid 每個位置要麼是陸地 記號為 0 要麼是水域 記號為 1 我們從一塊陸地出發,每次可以往上下左右 4 個方向相鄰區域走,能走到的所有陸地區域,我們將其稱為一座 島嶼 如果一座島嶼 完全 由水域包圍,即陸地邊緣上下左右所有相鄰區域都是水域,那麼我們將其稱為 封閉島...

統計封閉島嶼的數目

有乙個二維矩陣 grid 每個位置要麼是陸地 記號為 0 要麼是水域 記號為 1 我們從一塊陸地出發,每次可以往上下左右 4 個方向相鄰區域走,能走到的所有陸地區域,我們將其稱為一座 島嶼 如果一座島嶼 完全 由水域包圍,即陸地邊緣上下左右所有相鄰區域都是水域,那麼我們將其稱為 封閉島嶼 請返回封閉...

leetcode 統計封閉島嶼的數目

有乙個二維矩陣 gri dgrid grid 每個位置要麼是陸地 記號為 0 要麼是水域 記號為 1 我們從一塊陸地出發,每次可以往上下左右 4 個方向相鄰區域走,能走到的所有陸地區域,我們將其稱為一座 島嶼 如果一座島嶼 完全 由水域包圍,即陸地邊緣上下左右所有相鄰區域都是水域,那麼我們將其稱為 ...