博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【python/M/200】Number of Islands
阅读量:2171 次
发布时间:2019-05-01

本文共 850 字,大约阅读时间需要 2 分钟。

题目

在这里插入图片描述

基本思路

遍历矩阵,每遇到’1’后, 开始向四个方向递归搜索,搜到后变为’0’,因为相邻的属于一个island,然后开始继续找下一个’1’。

实现代码

class Solution:    def numIslands(self, grid):        """        :type grid: List[List[str]]        :rtype: int        """        m = len(grid)        if m == 0:            return 0        n = len(grid[0])        if n == 0:            return 0        # 结果        count = 0        for i in range(m):            for j in range(n):                if grid[i][j] == "1":                    self.islandErase(grid,i,j)                    count += 1        return count        def islandErase(self,grid,i,j):        if i<0 or j<0 or i>=len(grid) or j>=len(grid[0]) or grid[i][j]=="0":            return                 grid[i][j] = "0"        self.islandErase(grid,i-1,j)        self.islandErase(grid,i+1,j)        self.islandErase(grid,i,j-1)        self.islandErase(grid,i,j+1)
你可能感兴趣的文章
Leetcode C++ 《拓扑排序-1》20200626 207.课程表
查看>>
Go语言学习Part1:包、变量和函数
查看>>
Go语言学习Part2:流程控制语句:for、if、else、switch 和 defer
查看>>
Go语言学习Part3:struct、slice和映射
查看>>
Go语言学习Part4-1:方法和接口
查看>>
Leetcode Go 《精选TOP面试题》20200628 69.x的平方根
查看>>
leetcode 130. Surrounded Regions
查看>>
【托业】【全真题库】TEST2-语法题
查看>>
博客文格式优化
查看>>
【托业】【新托业全真模拟】疑难语法题知识点总结(01~05)
查看>>
【SQL】group by 和order by 的区别。
查看>>
【Python】详解Python多线程Selenium跨浏览器测试
查看>>
Jmeter之参数化
查看>>
Shell 和Python的区别。
查看>>
Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
查看>>
Loadrunner之https协议录制回放报错如何解决?(九)
查看>>
python中xrange和range的异同
查看>>
列表、元组、集合、字典
查看>>
【Python】easygui小甲鱼
查看>>
【Python】关于Python多线程的一篇文章转载
查看>>