बाद पुनरावर्ती क्रिया के लिए बेस प्रकरण क्या है

वोट
0

एक नया अजगर प्रोग्रामर के रूप में, मैं द्वीप की संख्या Leetcode प्रश्न के लिए निम्नलिखित प्रश्न और इसी समाधान मिल गया:

प्रश्न: https://leetcode.com/problems/number-of-islands/

'1 के (भूमि) और' 0 के (जल) की एक 2d ग्रिड मानचित्र को देखते हुए द्वीपों की संख्या की गणना। एक द्वीप पानी से घिरा हुआ है और आसन्न भूमि क्षैतिज या लंबवत जोड़ने से बना है। आप मान सकते हैं ग्रिड के सभी चार किनारों सब पानी से घिरे हैं।

उदाहरण:

इनपुट:

11110

11010

11000

00000

आउटपुट: 1

समाधान:

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

किसी भी विशेषज्ञ मुझे पता है डीएफएस समारोह में आधार मामला है क्या दे सकते हैं?

13/01/2020 को 23:53
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            

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