力扣热题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
相关推荐
Java后端的Ai之路1 小时前
【Python 教程15】-Python和Web
python
冬奇Lab3 小时前
一天一个开源项目(第15篇):MapToPoster - 用代码将城市地图转换为精美的海报设计
python·开源
那个村的李富贵5 小时前
CANN加速下的AIGC“即时翻译”:AI语音克隆与实时变声实战
人工智能·算法·aigc·cann
二十雨辰5 小时前
[python]-AI大模型
开发语言·人工智能·python
power 雀儿5 小时前
Scaled Dot-Product Attention 分数计算 C++
算法
Yvonne爱编码5 小时前
JAVA数据结构 DAY6-栈和队列
java·开发语言·数据结构·python
琹箐5 小时前
最大堆和最小堆 实现思路
java·开发语言·算法
前端摸鱼匠6 小时前
YOLOv8 环境配置全攻略:Python、PyTorch 与 CUDA 的和谐共生
人工智能·pytorch·python·yolo·目标检测
renhongxia16 小时前
如何基于知识图谱进行故障原因、事故原因推理,需要用到哪些算法
人工智能·深度学习·算法·机器学习·自然语言处理·transformer·知识图谱
坚持就完事了6 小时前
数据结构之树(Java实现)
java·算法