2019-08-20 LeetCode200. 岛屿数量

2019-08-20  本文已影响0人  mztkenan

1.第一次不知道为啥执行错误,本地运行大数据迭代深度超过
2.check的时候忘记检查=1
3.有特殊情况的,必须上下左右都检查一遍
4.python数组有负数这个比较特殊
35min

class Solution:
    def __init__(self):
        self.cnt=0

    def numIslands(self, grid: List[List[str]]) -> int:
        if not grid or len(grid)==0:return 0
        for i in range(len(grid)):
            for j in range(len(grid[0])):
                if grid[i][j]=='1':
                    self.cnt+=1
                    self.dfs(grid,i,j)
        return self.cnt



    def dfs(self,grid: List[List[str]],i:int,j:int):
        if self.check_valid(grid,i,j):
            grid[i][j]=None
            self.dfs(grid,i,j+1)
            self.dfs(grid,i,j-1)
            self.dfs(grid,i-1,j)
            self.dfs(grid,i+1,j)



    def check_valid(self,grid: List[List[str]],i:int,j:int):
        try:
            if i>=0 and i<len(grid) and j>=0 and j<len(grid[0]) and grid[i][j]!=None and grid[i][j]=='1':return True 记住python负数也可以使用,往下走的时候忘记判断==1
            else:return False
        except:
            return False
上一篇下一篇

猜你喜欢

热点阅读