LeetCode統計封閉島嶼數

2021-10-05 18:08:12 字數 654 閱讀 9892

題目對於封閉島嶼的要求是上下左右所有相鄰區域都是水域,所以首先排除處於矩陣邊框的陸地,設定乙個flag,利用深搜判斷陸地周圍是否是陸地,如果不是的話結束本次搜尋。封閉島嶼數加一;ac**如下:

class

solution

if(gird[i]

[j]!=0)

return

; gird[i]

[j]=-1

;//標記已經走過的區域

dfs(gird,i+

1,j,flag)

;dfs

(gird,i,j+

1,flag)

;dfs

(gird,i-

1,j,flag)

;dfs

(gird,i,j-

1,flag);}

intclosedisland

(vector

int>>

& grid)

}return ans;}}

;

因為對遞迴的執行原理至今還沒理解透,所以描述解題思路的時候可能會有很多錯誤,所以路過的大佬看到了可以指正一下。

leetcode 統計封閉島嶼的數目

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

統計封閉島嶼的數目

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

1254 統計封閉島嶼的數目

深度優先搜尋 dfs 的題。因為邊界的陸地不算島嶼,所以搜尋的時候把邊界的陸地及與邊界相連的陸地去掉。然後對陣列進行遍歷,求出島嶼數即可。方案一 public int closedisland int grid for int j 0 j grid 0 length j 尋找島嶼數量 int isl...