Python 岛屿问题

孤岛问题(Number of Islands) python解法 + 思路 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 示例 1: 输入: 11110 11010 11000 00000 输出: 1 示例 2: 输入: 11000 11000 00100 00011 输出: 3 由于在今年3月份网上笔试的时候碰到过这... 阅读详情
import numpy as np
import pandas as pd
# from pydantic
nums = [
  [1, 1, 0, 0, 0],
  [0, 1, 0, 0, 1],
  [0, 0, 0, 1, 1],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 1]
]

class Solution(object):
    def numIslands(self, grid):
        row = len(grid)
        if row == 0 or grid == None:
            return 0
        col = len(grid[0])
        count = 0
        for i in range(row):
            for j in range(col):
                if grid[i][j] == 1:
                    self.dfsFind(grid, i, j, row, col)
                    count += 1
                    print(count)
        return count
    def dfsFind(self, grid, i, j, row, col):
        print(i,j,row,col)
        #   [1, 1, 0, 0, 0],
        #   [0, 1, 0, 0, 1],
        #   [0, 0, 0, 1, 1],
        #   [0, 0, 0, 0, 0],
        #   [0, 0, 0, 0, 1]
        if grid[i][j] == 1:
            grid[i][j] = 0
            if i - 1 >= 0:
                grid = self.dfsFind(grid, i - 1, j, row, col)
            if i + 1 < row:
                grid = self.dfsFind(grid, i + 1, j, row, col)
            if j - 1 >= 0:
                grid = self.dfsFind(grid, i, j - 1, row, col)
            if j + 1 < col:
                grid = self.dfsFind(grid, i, j + 1, row, col)
        return grid

a=Solution()
a.numIslands(nums)

少儿Python每日一题(25):岛屿问题 :编程实现:有一片海域划分为N*M个方格,其中有些海域已被污染(用0表示),有些海域没被污染(用1表示)。请问这片N*M海域中有几块是没被污染的独立海域(没被污染的独立海域是指该块海域上下左右被已污染的海域包围,且N*M以外的海域都为已被污染的海域)例如:N=4,M=5,4*5的海域中,已被污染海域和没被污染的海域如下图:这块4*5的海域,有3块海域(绿色)没被污染,因为每一块的上下左右都被污染的海域包围。输入描述。 阅读详情

相关推荐

岛屿周长问题(python3实现)

题目 以二维数组给出地图,1代表陆地,0代表水。整张地图被水包围,并且只有一个岛。网格长宽不超过100。单位方格长度为1。求出岛的周长 样例 输入: [[0, 1, 0, 0], [1, 1, 1, 0], [0, 1, 0, 0], [1, 1, 0, 0]] 输出: 16 思路 题目本身不难,思路简单来说就是,遍历整个二维数组,遇到陆地(1),就进行判断。1旁边有多少个...

wnma3mz的博客 1226

岛屿类问题的广度优先深度优先双解法(Leetcode题解-Python语言)

695. 岛屿的最大面积 先上最经典的题目,详细思路看这题的官方题解,简单来说的岛屿问题就是遍历二维数组,一般都是从一块陆地开始,进行深度优先或者广度优先搜索,每次上下左右四个方向选其一寻找下一块陆地,最后找到一个岛屿(一片陆地)。 ...

自动化研究生在读,此博客记录了我的学习与刷题经验,欢迎大家阅读交流 1560

1254. 统计封闭岛屿的数目

DFS vs BFS:两者都适用于岛屿遍历,DFS实现简单,递归优雅;BFS通过队列实现,空间管理更灵活。原地修改 vs 额外空间:该方案直接修改输入矩阵,将访问过的陆地标记为水,节省空间。如果不能修改原矩阵,可以增加一个访问数组。边界处理:关键在于先把边界联通的岛屿“消灭”,这一步是本题的核心技巧。本篇文章详细讲解了如何计算二维矩阵中封闭岛屿的数量,给出了清晰的解题思路和代码实现,并通过示例说明和复杂度分析帮助理解。关键点是先排除边界连通的岛屿,再统计剩余岛屿数量。

Lucy_wzw的博客 426

Python算法题集_岛屿数量

题目124. 二叉树中的最大路径和:二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和 。

长孤秋落的札记 1471

PostgreSQL隐式类型转换全解析:告别operator does not exist

强类型数据库是现代数据系统的基石,它在带来严谨性的同时,也常常让开发者在类型不匹配报错前束手无策。当一条SQL因bigint与text比较而抛出operator does not exist时,根源往往在于对数据库隐式转换规则的误解。PostgreSQL通过pg_cast系统表将转换划分为隐式、赋值与显式三个级别,并依据操作符解析逻辑决定是否自动提升类型。理解这些机制,不仅能快速定位JOIN、UNION、函数调用等场景下的类型错误,还能帮助开发者合理使用EXPLAIN VERBOSE、pg_typeof等工

weixin_29587015的博客 304

专题一:Labview表格控件 及 应用(三)在表格中插入一行数据

专题一:Labview表格控件 及 应用(三) 在表格中插入一行数据 最近一段时间,做试验台上位机编程,老是用到表格控件,这几天抽时间专门写一个表格控件的专题。有用到的朋友可以参考一下。 今天接着讲一下,表格控件的数据插入,和相关的操作 1.表格控件的数据插入原理: 表格控件是一个 2D 字符串数组。 在表格插入一行,就是在2D数组插入一行。 行、列插入类似** 以下以成绩录入为例说明 2.1 不要表头直接插入 知识点1:创建数组:把数学,语文,英语三个数值,连成一个一位数组(数值型)。 知

Labview十年工控_702老师的博客 1万+

以岛屿问题为代表的网格类DFS问题(Python)

以岛屿问题为代表的网格类DFS问题(Python) 问题链接 参考链接:力扣 在 LeetCode 中,「岛屿问题」是一个系列系列问题,比如: 200. 岛屿数量 695. 岛屿的最大面积 463. 岛屿的周长 1905. 统计子岛屿 1254. 统计封闭岛屿的数目 面试题 16.19. 水域大小 130. 被围绕的区域 面试题 08.10. 颜色填充 以上是我目前做到的岛屿类题目系列题。 以上的解题方法都是基于一个模板: 将基于树的DFS扩展到基于网格的DFS 基于树的DF.

m0_51561759的博客 982

HFSS实战:手把手教你设计微带发夹线滤波器(附完整参数计算流程)

本文详细介绍了使用HFSS设计微带发夹线滤波器的完整流程,包括参数计算、HFSS建模和优化策略。通过实战案例,帮助读者掌握微波滤波器设计的核心技巧,特别是奇偶模阻抗计算和HFSS仿真中的关键设置,适用于通信系统设计和射频工程应用。

weixin_29251567的博客 440

python---- 二维数组下的岛屿数量问题

问题: 二维数组的岛屿问题: 由1和0组成的二维数组,1代表陆地,0代表水域,由水域围成的陆地即为岛屿. 数组周围默认为水域 例如: 1 1 1 1 0 1 0 1 1 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 输出:3 0 1 0 1 1 1 0 1 0 0 0 0 输出:2 代码: def numIsLands(grid): rows,cols = len...

qq_42149144的博客 1104

Mac上除了Homebrew,这几种安装ADB的方法你可能也需要知道(含手动配置避坑)

本文全面解析Mac上五种ADB安装方案,从Homebrew到手动配置,涵盖常见问题解决与环境变量配置。特别针对macOS High Sierra等老旧系统提供专属解法,帮助开发者高效安装Android Debug Bridge(ADB),避免常见陷阱,提升开发效率。

weixin_42546392的博客 319

【ODX介绍】-5-用于Flash刷写的ODX-F文件概述

用于Flash刷写的ODX-F文件概述

「汽车电子助手」的博客 2530

广度优先搜索--最经典的岛屿问题--通俗易懂--Python3

题目描述 很显然,这题是一个很经典的深广度优先问题,在这里我们主要讲广度优先,因为在Python中,在利用栈–深度优先,队列–广度优先的时候,其实原理是差不多的,只是**pop()**的位置不一样。 解题思路 什么叫广度优先搜索,就是以一个节点为初始节点,将此节点所能遍历的位置都遍历一遍,可以类比树的层次遍历。 具体怎么做呢,直接甩代码,因为这是这类问题解决的模板,只要认真思考,掌握了,下次就可...

admin_lzq的博客 966

基于Requests的百度图片搜索爬取技术详解

本文介绍了一种高效获取百度图片搜索数据的混合请求爬虫技术。该技术结合HTML解析与JSON API调用,通过分析百度图片搜索的网络通信模式,实现了首页HTML解析获取初始参数、后续页面直接调用JSON接口的双重机制。系统采用模块化设计,包含Cookies解析、智能请求分发、数据提取、图片下载等核心模块,支持自定义关键词和爬取页数配置。关键技术包括动态参数管理、正则表达式提取、JSON数据处理等,相比传统爬虫方法具有效率高、资源消耗低的优势,为计算机视觉研究提供了可靠的大规模图片数据采集方案。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 419

【数据结构与算法】深度揭示深度优先搜索与广度优先搜索的区别_在数组中的应用[附Leetcode中三大岛屿问题的Python求解]

深度揭示深度优先搜索与广度优先搜索的区别_在数组中的应用[附Leetcode中三大岛屿问题的Python求解]

qq_57161038的博客 1026

韩版传奇 2 源码分析与 Unity 重制(一)服务端 TCP 状态管理

该专题将会分析 LOMCN 基于韩版传奇 2,使用 .NET 重写的传奇源码(服务端 + 客户端),分析数据交互、状态管理和客户端渲染等技术,此外笔者还会分享将客户端部分移植到 Unity 和服务端用现代编程语言重写的全过程。本文重点介绍了服务端的启动链路、网络初始化和连接处理这三个过程,并简要分析的游戏循环的实现与数据包处理,在下一篇文章中,我们会从客户端角度分析从游戏启动、登录、游戏开始和基础游戏交互的全流程。

东方猫的博客 2496

MMCVDeformConv2d转TensorRT记录

MMCVDeformConv2d转Tensorrt

qq_35435798的博客 1778

break algorithm---暴力搜索:岛屿问题

😡😡😡 声明: 算法基于https://labuladong.github.io/ python语言实现 岛屿问题: https://labuladong.github.io/algo/4/29/108/ 200.number-of-islands 695.max-area-of-island 1020.number-of-enclaves 1254.number-of-closed-islands 1905.count-sub-islands 😡😡😡 200.number-of-is.

qq_41875506的博客 207

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

数据结构与算法-岛屿问题:网格结构中的 DFS(Python)

岛屿问题:网格结构中的 DFS

x___xxxx的博客 1209

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

岛屿类问题,DFS遍历框架(python)

1、LeetCode200:给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 def dfs(grid,i,j): if (not exist(grid,i,j)) or grid[i][j]!='1' : return 0 grid[i][j]=2 dfs(grid,i-1,j) dfs(grid,i+1,j) dfs(grid,i,j-1) dfs(grid,i,

weixin_43551935的博客 515

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

岛屿数量问题

给一个0 1矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。岛屿问题: 相邻陆地可以组成一个岛屿(相邻:上下左右) 判断岛屿个数。

T 473

力扣题库第200题 岛屿问题python解法

力扣题库第200题 岛屿问题python解法

weixin_54113539的博客 273

【leetcode100】岛屿的最大面积

给你一个大小为m x n的二进制矩阵grid。是由一些相邻的1(代表土地) 构成的组合,这里的「相邻」要求两个1必须在相邻。你可以假设grid的四个边缘都被0(代表水)包围着。岛屿的面积是岛上值为1的单元格的数目。计算并返回grid中最大的岛屿面积。如果没有岛屿,则返回面积为0。

qq_65509025的博客 671

2024.8.14 Python,岛屿问题,广度深度优先搜索

上一篇文章记录了我的做题逻辑,今天顺着昨天的思路重新写了代码以后发现,还是有很多小细节没处理好,冒号,逗号,什么的都无所谓了,习惯问题,还有就是,岛屿给的是字符串,所以不是1而是“1”去判断,还有一点特别有意思,以下这一条。这是置零操作,那么现在分析这个过程,neighbours是一个队列,以[r][c]为起点,当neighbors不为空的时候那么就进入循环,popleft是从左边取一个,然后进行分析,发现一个1就添加一个队列,然后置零。

RaidenMessi的博客 376

leetcode | python | 第200题 | 岛屿数量

【代码】leetcode | python | 第200题 | 岛屿数量。

iCling的博客 315

leetcode 200. 岛屿数量 Python

分类题目解题思路广度优先搜索(BFS)Python实现 题目 给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围,地址。 示例1 输入: 11110 11010 11000 00000 输出: 1 示例2 输入: 11000 11000 00100 00011 输出...

Languedoc_Roussillon的博客 640

Python实现数据结构与算法——岛屿数量

题目描述: 给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 示例1: 输入: 11110 11010 11000 00000 输出: 1 示例2: 输入: 11000 11000 00100 00011 来源:力扣(LeetCode) 链接:https://l...

Mantana的博客 1551
上一篇: echart柱状图、电池图、3D柱图、3D圆柱图
下一篇: Anaconda介绍、安装及使用保姆级教程
唐僧不爱八戒
博客等级 码龄9年 158粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值