leetcode200. 岛屿数量

leetcode200. 岛屿数量

题目

在这里插入图片描述

思路

遍历每一个网格,若网格为1,岛屿数量+1,利用一个深度优先搜索函数将岛屿置零,注意判断数组边界

代码

class Solution:
    def numIslands(self, grid: List[List[str]]) -> int:
        self.grid = grid
        self.result = 0
        self.height = len(grid)
        self.width = len(grid[0])
        self.directions = [[-1,0],[1,0],[0,-1],[0,1]]
        for i in range(self.height):
            for j in range(self.width):
                if self.grid[i][j]=='1':
                    self.result += 1
                    self.clean(i,j)
        return self.result

    def clean(self,i,j):
        if self.grid[i][j]=='1':  # 终止前置条件
            self.grid[i][j]='0'
        else:                     # 终止前置条件
            return 0
        for direction in self.directions:
            temp_h = i+direction[0]
            temp_w = j+direction[1]
            if temp_h>=0 and temp_h<self.height and temp_w>=0 and temp_w<self.width:
                self.clean(temp_h,temp_w)

相关推荐

  1. leetcode 200 岛屿数量

    2024-03-09 23:26:06       6 阅读
  2. 【图论】Leetcode 200. 岛屿数量【中等】

    2024-03-09 23:26:06       22 阅读
  3. leetcode-200-岛屿问题

    2024-03-09 23:26:06       40 阅读
  4. 200. 岛屿数量

    2024-03-09 23:26:06       33 阅读
  5. 200. 岛屿数量

    2024-03-09 23:26:06       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-09 23:26:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-09 23:26:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-09 23:26:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-09 23:26:06       20 阅读

热门阅读

  1. vue组件之间通信方式

    2024-03-09 23:26:06       22 阅读
  2. 图论相关内容

    2024-03-09 23:26:06       21 阅读
  3. 微服务-高级篇

    2024-03-09 23:26:06       25 阅读
  4. 我的第一个python web 网站

    2024-03-09 23:26:06       24 阅读
  5. Python爬虫利器

    2024-03-09 23:26:06       20 阅读
  6. 移动端开发之uni-app开发规范说明

    2024-03-09 23:26:06       21 阅读
  7. HTML 02

    HTML 02

    2024-03-09 23:26:06      18 阅读
  8. Spring Authorization Server简介

    2024-03-09 23:26:06       20 阅读