1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
class (object): def numIslands(self, grid): """ :type grid: List[List[str]] :rtype: int """ if not grid or not grid[0]: return 0 M, N = len(grid), len(grid[0]) que = collections.deque() res = 0 directions = [(0, 1), (0, -1), (1, 0), (-1, 0)] for i in range(M): for j in range(N): if grid[i][j] == '1': res += 1 grid[i][j] = '0' que.append((i, j)) while que: x, y = que.pop() for d in directions: nx, ny = x + d[0], y + d[1] if 0 <= nx < M and 0 <= ny < N and grid[nx][ny] == '1': grid[nx][ny] = '0' que.append((nx, ny)) return res
|
近期评论