leetcode200 島嶼個數

2021-09-13 01:17:06 字數 934 閱讀 2906

對方格中的每乙個點為起點進行遍歷。

如果找到乙個為1的點,結果就更新。

以該點為中心,搜尋四周的點

搜尋流程:

如果越界,返回

如果是0, 返回

向四周搜尋

class solution(object):

def numislands(self, grid):

""":type grid: list[list[str]]

:rtype: int

"""if len(grid) == 0:

return 0

ans = 0

row = len(grid)

col = len(grid[0])

for i in range(row):

for j in range(col):

print(i, j)

if grid[i][j] == "0":

continue

else:

ans += 1

self.helper(grid, i, j, row, col)

return ans

def helper(self, grid, i, j, m, n):

if i < 0 or i >= m or j < 0 or j >= n :

return

if grid[i][j] == "0":

return

grid[i][j] = "0"

self.helper(grid, i+1, j, m, n)

self.helper(grid, i, j+1, m, n)

self.helper(grid, i-1, j, m, n)

self.helper(grid, i, j-1, m, n)

leetcode 200島嶼的個數

主要考察圖搜尋 方法一 染色法,時間o mn 遍歷一遍,再通過bfs或dfs將所有臨近島嶼染色,使用dfs時將numislands中的bfs換成dfs即可 遍歷所有的點 只要遇見陸地 1 投放1枚原子彈,衝擊波以bfs或dfs的形式向外擴散,使得自身及所有相鄰區域全部夷為平地 最終遍歷結束,原子彈使...

LeetCode 200 島嶼的個數

題目 給定乙個由 1 陸地 和 0 水 組成的的二維網格,計算島嶼的數量。乙個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連線而成的。你可以假設網格的四個邊均被水包圍。示例 1 輸入 11110 11010 11000 00000 輸出 1示例 2 輸入 11000 11000 00100...

LeetCode 200 島嶼的個數

給定乙個由 1 陸地 和 0 水 組成的的二維網格,計算島嶼的數量。乙個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連線而成的。你可以假設網格的四個邊均被水包圍。示例 1 輸入 11110 11010 11000 00000 輸出 1示例 2 輸入 11000 11000 00100 00...