200. Number of Islands [Medium] DFS

本文介绍了一种使用深度优先搜索(DFS)算法解决二维矩阵中岛屿数量问题的方法。通过遍历矩阵,每当遇到陆地(用'1'表示),就调用DFS函数将其标记为已访问,并递归地访问其相邻的陆地,以此来统计独立岛屿的数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

200. Number of Islands

17368230-e5a87111f36c3642.png
200. Number of Islands

一看就是深度优先的遍历

class Solution(object):
    def numIslands(self, grid):
        """
        :type grid: List[List[str]]
        :rtype: int
        """
        res = 0
        if grid == []:
            return res
        m, n = len(grid), len(grid[0])
        for i in range(m):
            for j in range(n):
                if grid[i][j] == '1':
                    res += 1
                    self.DFS(grid, m, n, i, j)
        return res
    def DFS(self, grid, m, n, a, b):
        grid[a][b] = '0'
        direction = [(1,0),(-1,0),(0,1),(0,-1)]
        for i in range(4):
            x = a + direction[i][0]
            y = b + direction[i][1]
            if x>=0 and x<m and y>=0 and y<n and grid[x][y]=='1':
                self.DFS(grid, m, n, x, y)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值