200.
Number of Islands题目描述如下: >Given a 2d grid map of '1's
(land) and '0's (water), count the number of islands. An island is
surrounded by water and is formed by connecting adjacent lands
horizontally or vertically. You may assume all four edges of the grid
are all surrounded by water. >Example 1:
classSolution(object): defnumIslands(self, grid): """ :type grid: List[List[str]] :rtype: int """ iflen(grid) == 0: return0 m, n, result = len(grid), len(grid[0]), 0 visited = [[0for j in xrange(n)] for i in xrange(m)] for i in xrange(m): for j in xrange(n): if grid[i][j] == '1'and visited[i][j] == 0: self.dfs(grid, visited, i, j) result += 1 return result defdfs(self, grid, visited, i, j): visited[i][j] = 1 m, n = len(grid), len(grid[0]) if0<= i-1 <m and grid[i-1][j] == '1'and visited[i-1][j] == 0: self.dfs(grid, visited, i-1, j) if0<= i+1 <m and grid[i+1][j] == '1'and visited[i+1][j] == 0: self.dfs(grid, visited, i+1, j) if0<= j-1 <n and grid[i][j-1] == '1'and visited[i][j-1] == 0: self.dfs(grid, visited, i, j-1) if0<= j+1 <n and grid[i][j+1] == '1'and visited[i][j+1] == 0: self.dfs(grid, visited, i, j+1)