섬의 수
7071 단어 problemsolvingleetcodepython
섬은 물로 둘러싸여 있으며 인접한 육지를 수평 또는 수직으로 연결하여 형성됩니다. 그리드의 네 모서리가 모두 물로 둘러싸여 있다고 가정할 수 있습니다.
class Solution(object):
def numIslands(self, grid):
"""
:type grid: List[List[str]]
:rtype: int
"""
if not grid:
return 0
rows, cols = len(grid), len(grid[0])
islands = 0
visited = set()
def bfs(r, c):
q = collections.deque()
visited.add((r, c))
q.append((r, c))
while q:
row, col = q.pop()
directions = [
[1, 0], [-1, 0],
[0, 1], [0, -1]
]
for dr, dc in directions:
if(
(r + dr) in range(rows)
and (c + dc) in range(cols)
and grid[r+dr][c+dc] == "1"
and (r+dr, c+dc) not in visited
):
visited.add((r+dr, c+dc))
q.append((r+dr, c+dc))
bfs(r+dr, c+dc)
for r in range(rows):
for c in range(cols):
if grid[r][c] == "1" and (r, c) not in visited:
bfs(r, c)
islands += 1
return islands
Reference
이 문제에 관하여(섬의 수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/salahelhossiny/number-of-islands-5667텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)