我有以下代码可以解决此问题:
“给定0和1的非空二维阵列栅格,孤岛是一组4向(水平或垂直)连接的1(代表陆地)。您可以假设栅格的所有四个边都被水包围
计算不同岛屿的数量。当且仅当一个岛屿可以平移(而不是旋转或反射)以相等于另一个岛屿时,才认为一个岛屿与另一个岛屿相同。” 问题的链接:https://leetcode.com/problems/number-of-distinct-islands/
# Do a DFS to find all cells in the current island.
def dfs(row, col):
if row < 0 or col < 0 or row >= len(grid) or col >= len(grid[0]):
return
if (row, col) in seen or not grid[row][col]:
return
seen.add((row, col))
current_island.append((row - row_origin, col - col_origin))
dfs(row + 1, col)
dfs(row - 1, col)
dfs(row, col + 1)
dfs(row, col - 1)
上述代码是问题解决方案的一部分
我的问题在“当前岛.附加”一行;这一行和代码的其余部分做什么
注意,例如dfs(row+1,col)以row+1,col作为输入运行dfs函数。 但我们如何在不启动的情况下附加当前的_岛?我假设当前的_岛开始时类似于[0,0,0,0],然后我们向每个索引添加(或添加1)来表示岛
从.append开始的脚本说明:
.append
只是在python列表的末尾添加一个值然后下面的行只调用
dfs()
函数的早期定义相关问题 更多 >
编程相关推荐