Hva er Base Case Etter rekursiv funksjon

stemmer
0

Som ny python programmerer, fikk jeg følgende spørsmål og tilsvarende løsning for Antall Island Leetcode Spørsmål:

Spørsmål: https://leetcode.com/problems/number-of-islands/

Gitt et 2d grid kart over '1' s (land) og' 0-tallet (vann), telle antall øyer. En øy er omgitt av vann, og er dannet ved å forbinde tilstøtende arealer horisontalt eller vertikalt. Du kan anta alle fire kanter av rutenettet er alle omgitt av vann.

Eksempel:

inngang:

11110

11010

11000

00000

Utgang: 1

Løsning:

class Solution:
    def numIslands(self, grid: List[List[str]]) -> int:
        rmax = len(grid)
        if rmax == 0:
            return 0
        cmax = len(grid[0])
        island = 0
        def DFS(grid,r,c,rmax,cmax):
            grid[r][c]='0'
            if r+1<rmax and grid[r+1][c]=='1':
                DFS(grid,r+1,c,rmax,cmax)
            if r-1>=0 and grid[r-1][c]=='1':
                DFS(grid,r-1,c,rmax,cmax)
            if c+1<cmax and grid[r][c+1]=='1':
                DFS(grid,r,c+1,rmax,cmax)
            if c-1>=0 and grid[r][c-1]=='1':
                DFS(grid,r,c-1,rmax,cmax)
        for r in range(rmax):
            for c in range(cmax):
                if grid[r][c]=='1':
                    DFS(grid,r,c,rmax,cmax)
                    island+=1
        return island

Kan noen ekspert la meg vite hva som er base case i DFS-funksjon?

Publisert på 13/01/2020 klokken 23:53
kilden bruker
På andre språk...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more