Wat is het basisscenario voor de volgende recursieve functie

stemmen
0

Als een nieuwe python programmeur, kreeg ik de volgende vraag en de bijbehorende software voor Aantal Island Leetcode Vraag:

Vraag: https://leetcode.com/problems/number-of-islands/

Gegeven een 2d kaart van '1's (land) en' 0-en (water) net, tel het aantal eilanden. Een eiland wordt omgeven door water en is gevormd door het verbinden van aangrenzende gebieden horizontaal of verticaal. Je mag aannemen alle vier de randen van het rooster zijn allemaal omgeven door water.

Voorbeeld:

Invoer:

11110

11010

11000

00000

Output: 1

Oplossing:

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 een expert laat me weten wat is de basis geval is in de DFS-functie?

De vraag is gesteld op 13/01/2020 om 23:53
bron van user
In andere talen...                            

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