Number of Enclaves (Leetcode 1020)

Problem Link: https://leetcode.com/problems/number-of-enclaves/

class Solution:
    def numEnclaves(self, grid: List[List[int]]) -> int:
        
        # Make all 1s which are connected to border to 0
        def dfs(i,j,m,n,grid):
            
            if(i<0 or j<0 or i>=m or j>=n or grid[i][j]==0):
                return
            
            grid[i][j]=0
            
            dfs(i+1,j,m,n,grid)
            dfs(i-1,j,m,n,grid)
            dfs(i,j-1,m,n,grid)
            dfs(i,j+1,m,n,grid)
            
        
        m=len(grid)
        n=len(grid[0])
        for i in range(m):
            for j in range(n):
                if(i==0 or j==0 or i==m-1 or j==n-1):
                    if(grid[i][j]==1):
                        dfs(i,j,m,n,grid)
        
        # Then count the 1s which are left over in matrix
        count=0
        for i in range(m):
            for j in range(n):
                if(grid[i][j]==1):
                    count+=1
        return count

Last updated