class Solution:
def islandPerimeter(self, grid: List[List[int]]) -> int:
m = len(grid)
n = len(grid[0])
res = 0
for i in range(0,m):
for j in range(0,n):
if grid[i][j] == 1:
return self.dfs(grid,i,j)
def dfs(self,grid,i,j):
m = len(grid)
n = len(grid[0])
if i<0 or i>=m or j<0 or j>=n:
return 1
if grid[i][j]==0:
# 是海洋
return 1
# 不是岛屿部分不管
if grid[i][j]!=1:
return 0
# 方便排除重复遍历
grid[i][j] = 2
return self.dfs(grid,i-1,j)+self.dfs(grid,i+1,j)+self.dfs(grid,i,j-1)+self.dfs(grid,i,j+1)
每日一道Leetcode - 463. 岛屿的周长 【DFS】
最新推荐文章于 2021-11-08 11:09:41 发布