Number of Distinct Islands
DFS
Last updated
DFS
Last updated
class Solution:
def numDistinctIslands(self, grid: List[List[int]]) -> int:
islandSet = set()
for i in range(len(grid)):
for j in range(len(grid[0])):
if grid[i][j] == 1:
self.path = "" #needs to be global variable
self.dfsearch(i,j,grid,"s")
print(self.path)
islandSet.add(self.path)
print(islandSet)
return len(islandSet)
def dfsearch(self, i, j, grid, direction):
if i < 0 or i >= len(grid) or j < 0 or j >= len(grid[0]) or grid[i][j] != 1:
return
grid[i][j] = 0
self.path+=direction
self.dfsearch(i-1,j,grid,"u")
self.dfsearch(i+1,j,grid,"d")
self.dfsearch(i,j-1,grid,"l")
self.dfsearch(i,j+1,grid,"r")
self.path+="e"