Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def feasible(grid,i,j):
- if i>=0 and j>=0 and i<len(grid) and j<len(grid[0]) and grid[i][j]=='L':
- return True
- return False
- def dfs(grid,i,j,visited):
- x = [-1, -1, 0, 1, 1, 1, 0, -1]
- y = [ 0, 1, 1, 1, 0, -1, -1, -1]
- for k in range(8):
- i_new=i+x[k]
- j_new=j+y[k]
- if feasible(grid,i_new,j_new) and visited[i_new][j_new]==0:
- visited[i_new][j_new]=1
- dfs(grid,i_new,j_new,visited)
- class Solution:
- def numIslands(self, grid):
- r=len(grid)
- c=len(grid[0])
- visited=[[0]*c for i in range(r)]
- count=0
- for i in range(r):
- for j in range(c):
- if visited[i][j]==0 and grid[i][j]=='L':
- visited[i][j]=1
- dfs(grid,i,j,visited)
- count+=1
- return count
Advertisement
Advertisement