給定乙個由 『1』(陸地)和 『0』(水)組成的的二維網格,計算島嶼的數量。乙個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連線而成的。你可以假設網格的四個邊均被水包圍。
示例 1:
輸入:
11110
11010
11000
00000
輸出: 1
示例 2:
輸入:
11000
11000
00100
00011
輸出: 3
這個題還是用dfs進行遍歷,遇到1且沒有遍歷過就搜尋它周圍所有的1。
c++源**:
class
solution}}
return res;
}void
dfs(vectorchar
>>
& grid, vectorbool
>>
& visited,
int x,
int y)
};
python3源**:
class
solution
:def
numislands
(self, grid: list[list[
str]])
->
int:
iflen
(grid)==0
orlen
(grid[0]
)==0:
return
0 m =
len(grid)
n =len(grid[0]
) res =
0 visited =[[
0for i in
range
(n)]
for j in
range
(m)]
for i in
range
(m):
for j in
range
(n):
if grid[i]
[j]==
'1'and visited[i]
[j]==0:
self.dfs(grid, visited, i, j)
res +=
1return res
defdfs(self, grid, visited, x, y)
:if x<
0or x>=
len(grid)
:return
if y<
0or y>=
len(grid[0]
):return
if grid[x]
[y]!=
'1'or visited[x]
[y]==1:
return
visited[x]
[y]=
1 self.dfs(grid, visited, x+
1, y)
self.dfs(grid, visited, x-
1, y)
self.dfs(grid, visited, x, y+1)
self.dfs(grid, visited, x, y-
1)
演算法題 leetcode200 島嶼數量
題目描述 給定乙個由 1 陸地 和 0 水 組成的的二維網格,計算島嶼的數量。乙個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連線而成的。你可以假設網格的四個邊均被水包圍。深度搜尋class solution return count public static void combine ...
leetcode 第200題 島嶼數量
題目 給定乙個由 1 陸地 和 0 水 組成的的二維網格,計算島嶼的數量。乙個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連線而成的。你可以假設網格的四個邊均被水包圍。示例 1 輸入 11110 11010 11000 00000 輸出 1 示例 2 輸入 11000 11000 0010...
泛洪演算法 LeetCode200
給定乙個由 1 陸地 和 0 水 組成的的二維網格,計算島嶼的數量。乙個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連線而成的。你可以假設網格的四個邊均被水包圍。示例 1 輸入 11110 11010 11000 00000輸出 1 floodfill 演算法通常譯作 洪水灌溉法 它是一種...