力扣热题51

200. 岛屿数量 - 力扣(LeetCode)https://leetcode.cn/problems/number-of-islands/submissions/628256822/?envType=study-plan-v2&envId=top-100-liked

深度优先递归

双层循环进行遍历,对每个1进行计数作为岛屿,然后进入递归将这个1四周的1的四周都变为0即淹没,最后得到答案

复制代码
#python
class Solution:
    def dfs(self,grid,a,b):
        grid[a][b]=0
        c,d=len(grid),len(grid[0])
        for x,y in [(a-1,b),(a+1,b),(a,b-1),(a,b+1)]:
            if 0<=x<c and 0<=y<d and grid[x][y]=="1":
                self.dfs(grid,x,y)
    def numIslands(self, grid: List[List[str]]) -> int:
        a=len(grid)
        if a==0:
            return 0
        b=len(grid[0])
        ans=0
        for i in range(a):
            for j in range(b):
                if grid[i][j]=="1":
                    ans=ans+1
                    self.dfs(grid,i,j)
        return ans
相关推荐
2301_8223827610 分钟前
Python上下文管理器(with语句)的原理与实践
jvm·数据库·python
张祥64228890416 分钟前
误差理论与测量平差基础笔记十
笔记·算法·机器学习
踩坑记录17 分钟前
leetcode hot100 2.两数相加 链表 medium
leetcode·链表
喵手26 分钟前
Python爬虫实战:从零搭建字体库爬虫 - requests+lxml 实战采集字体网字体信息数据(附 CSV 导出)!
爬虫·python·爬虫实战·零基础python爬虫教学·csv导出·采集字体库数据·字体库字体信息采集
qq_1927798743 分钟前
C++模块化编程指南
开发语言·c++·算法
2301_790300961 小时前
Python深度学习入门:TensorFlow 2.0/Keras实战
jvm·数据库·python
代码村新手1 小时前
C++-String
开发语言·c++
程序员敲代码吗2 小时前
用Python生成艺术:分形与算法绘图
jvm·数据库·python
Yyyyy123jsjs2 小时前
如何通过免费的外汇API轻松获取实时汇率数据
开发语言·python