题目
跟题目1254.统计封闭岛屿的数目完全相同的套路!
DFS
Python
class Solution:
def numEnclaves(self, grid: List[List[int]]) -> int:
m, n = len(grid), len(grid[0])
for i in range(m):
for j in range(n):
if (i == 0 or i == m-1 or j == 0 or j == n-1) and grid[i][j] == 1:
self.dfs(grid, i, j)
zero_count = 0
for i in range(m):
for j in range(n):
if grid[i][j] == 0:
zero_count += 1
return m*n - zero_count
def dfs(self, grid, i, j):
if (i < 0 or i >= len(grid)
or j < 0 or j >= len(grid[0])
or grid[i][j] == 0):
return
grid[i][j] = 0
self.dfs(grid, i-1, j)
self.dfs(grid, i+1, j)
self.dfs(grid, i, j-1)
self.dfs(grid, i, j+1)