Island Perimeter (Leetcode 463)

Problem Link: https://leetcode.com/problems/island-perimeter/

Using Loops:

class Solution:
    def islandPerimeter(self, grid: List[List[int]]) -> int:
        
        rows=len(grid)
        cols=len(grid[0])

        ans=0
        for i in range(rows):
            for j in range(cols):
                if(grid[i][j]==1):
                    ans=ans+4
                    if(i-1>=0 and grid[i-1][j]==1):
                        ans=ans-2
                    if(j-1>=0 and grid[i][j-1]==1):
                        ans=ans-2
        return ans
            

Using DFS(Recursion):

class Solution:
    def islandPerimeter(self, grid: List[List[int]]) -> int:
        
        row=len(grid)
        col=len(grid[0])
        
        def fun(grid):
            if(len(grid)==1):
                tempAns=0
                for i in range(len(grid[0])):
                    if(grid[0][i]==1):
                        tempAns+=4
                        if(i-1>=0 and grid[0][i-1]==1):
                            tempAns-=2
                return tempAns
            
            tempAns=fun(grid[1:])
            print(tempAns)
            col=len(grid[0])
            for i in range(col):
                if(grid[0][i]==1):
                    tempAns+=4
                    if(grid[1][i]==1):
                        tempAns-=2
                    if(i-1>=0 and grid[0][i-1]==1):
                        tempAns-=2
                else:
                    continue
                      
            return tempAns
        
        return fun(grid)
            

Last updated