Was ist die Basis-Szenario für die folgenden rekursiven Funktion

stimmen
0

Als neuer Python-Programmierer, bekam ich die folgende Frage und die entsprechende Lösung für die „Anzahl der Insel“ Leetcode Frage:

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

Bei einer 2D-Gitter Karte von ‚1'en (Land) und‘ 0'en (Wasser), zählt die Anzahl der Inseln. Eine Insel ist von Wasser umgeben und wird durch Verbinden benachbarter Stege horizontal oder vertikal ausgebildet sind. Sie können alle vier Kanten des Gitters übernehmen alle von Wasser umgeben sind.

Beispiel:

Eingang:

11110

11010

11000

00000

Ausgang: 1

Lösung:

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

Kann jeder Experte lassen Sie mich wissen, was das Basismodell in der DFS-Funktion?

Veröffentlicht am 13/01/2020 um 23:53
quelle vom benutzer
In anderen Sprachen...                            

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