【广度优先遍历-中等】面试题 16.19. 水域大小

盘点军工行业软件研发的那些常用GJB标准 GJB5000、2786、438、141、102、8114等... 阅读详情

【题目】

【代码】
【方法1】递归方法求解
在这里插入图片描述

class Solution:
    def pondSizes(self, land: List[List[int]]) -> List[int]:
        ans=[]
        def dfs(x,y):
            if x>=0 and x<len(land) and y>=0 and y<len(land[0]) and land[x][y]==0:
                land[x][y]=1
                return 1+dfs(x+1,y)+dfs(x-1,y)+dfs(x,y+1)+dfs(x,y-1)+dfs(x-1,y-1)+dfs(x+1,y+1)+dfs(x-1,y+1)+dfs(x+1,y-1)
            return 0

        for i in range(len(land)):
            for j in range(len(land[0])):
                if land[i][j]==0:
                    tmp=dfs(i,j)
                    if tmp:
                        ans.append(tmp)
        ans.sort()
        return ans

【方法2】用栈代替递归
在这里插入图片描述

class Solution:
    def pondSizes(self, land: List[List[int]]) -> List[int]:
        ans=[]
        for i in range(len(land)):
            for j in range(len(land[0])):
                if land[i][j]==0:
                    cnt=0
                    stack=[(i,j)]
                    while stack:
                        x,y=stack.pop()
                        if x>=0 and x<len(land) and y>=0 and y<len(land[0]) and land[x][y]==0:
                            land[x][y]=1
                            cnt+=1
                            stack.append((x+1,y))
                            stack.append((x-1,y))
                            stack.append((x,y+1))
                            stack.append((x,y-1))
                            stack.append((x-1,y-1))
                            stack.append((x+1,y+1))
                            stack.append((x-1,y+1))
                            stack.append((x+1,y-1))
                    if cnt:
                        ans.append(cnt)
        ans.sort()
        return ans
开源CC6920差分霍尔电流传感器模块实战指南——从选型到波形分析 本文详细介绍了CC6920差分霍尔电流传感器模块的选型、硬件连接、参数计算及波形分析技巧。通过实战案例,展示了该开源硬件在电流测量中的优势,包括超低内阻、电气隔离和抗干扰能力,适用于电机控制、开关电源保护等场景。 阅读详情

相关推荐

医学图像处理入门:如何用Python将CT灰度图转换为伪彩色图像(附代码)

本文详细介绍了如何使用Python将CT灰度图转换为伪彩色图像,提升医学图像的可读性和诊断效率。通过OpenCV和Matplotlib等工具,实现灰度值到彩色空间的映射,特别适用于突出显示特定组织密度差异。文章包含完整代码示例和临床实用技巧,适合医学影像分析初学者和Python开发者。

gitlab7runner的博客 327

leetcode —— 面试题 16.19. 水域大小

你有一个用于表示一片土地的整数矩阵land,该矩阵中每个点的值代表对应地点的海拔高度。若值为0则表示水域。由垂直、水平或对角连接的水域为池塘。池塘的大小是指相连接的水域的个数。编写一个方法来计算矩阵中所有池塘的大小,返回值需要从小到大排序。 示例: 输入: [ [0,2,1,0], [0,1,0,1], [1,1,0,1], [0,1,0,1] ] 输出: [1,2,4] 来源:力扣(Leet...

然后就去远行 6259

通过CRC32爆破修改图片的宽高 ctf-misc图片隐写

** 一.在处理图片隐写题的时候,可能会修改图片原有的宽高,导致图片里面的内容无法正常显示,那么怎么判断它的宽高是否被修改了呢? ** 1.把图片拖进010editor中会发现左下角提示CRC不匹配,这是因为修改了高宽,却没有修改CRC,导致读取报错。 2.在linux中CRC32错误的图片是无法打开的,也可以利用pngcheck检查图片,会提示CRC32校验错误 ** 二.既然知道了CRC校验码错误,那么如何修改呢? 首先我们要知道CRC32是有哪些字节构成的 ** PNG文件中总是以固定的八个字节开

weixin_44145452的博客 1万+

面试题 16.19. 水域大小

本篇博客我们讨论了 LeetCode 上的面试题 16.19 水域大小。我们介绍了问题的背景和详细描述,并给出了两种解决方案,分别使用深度优先搜索(DFS)和广度优先搜索(BFS)。我们给出了具体的代码实现,并对解决方案进行了详细的解释。希望这篇博客对你理解和解决这道问题有所帮助。如果你有任何疑问或建议,请随时在评论区提出。

bigBbug的博客 782

SVM-支持向量机学习(1):线性可分SVM的基本型

1. foreword先看的是李航老师的书第7章,比较传统按照以下三节展开: 线性可分SVM 线性SVM 非线性SVM SMO算法 李航老师讲东西向来不拖泥带水,但本节也几乎用了40页的篇幅,足见涉及内容之多。7月底硬着头皮啃了下来,边看边在笔记上摘抄标注,花了2天时间对SVM有了基本认识。一个月过去了,如今重新整理为博客,再看轻松许多,并不断对比西瓜书的内容,启望达到融会贯通。西瓜书此节明显节奏轻

鸟恋旧林的博客 8681

【实战】S7-PLCSIM Advanced V3.0 授权问题排查指南(Error Code:-30与LicenseNotFound深度解析)

本文深度解析S7-PLCSIM Advanced V3.0启动时遇到的Error Code:-30与LicenseNotFound报错问题。文章提供了一套系统性的排查指南,从检查WinPcap驱动兼容性、确保Automation License Manager服务运行,到正确安装浮动授权以及清理系统残留缓存,逐步解决授权链条中的各个环节故障,帮助用户彻底解决仿真环境启动失败的问题。

weixin_29185167的博客 725

LeetCode——面试题 16.19. 水域大小

1.深搜 2.广搜

weixin_44750790的博客 1349

用Matlab系统辨识工具箱搞定温控系统建模:从阶跃响应到传递函数(附完整代码)

本文详细介绍了如何使用Matlab系统辨识工具箱进行温控系统建模,从阶跃响应数据采集到传递函数参数辨识的全过程。通过实际案例和完整代码,帮助工程师快速掌握PID控制参数整定技巧,提升温控系统设计效率。特别适合单片机开发者和自动化控制工程师参考。

weixin_30736301的博客 310

LeetCode 面试题 16.19. 水域大小

来源:力扣(LeetCode)链接:https://leetcode.cn/problems/group-anagrams/description/

Rp的博客 994

嵌入式工程师成长之路(5)——板子调试

USB2514集线器调试总结说说USB连接线USB数据线上的“疙瘩”:原来有这么大用处!

云轩阁 4万+

YOLOv11-seg 改进系列 | 引入原创 RSCD 重参数共享卷积分割头,增强 Head 表达力并压低计算量

本文提出一种改进的YOLOv11-seg分割头Segment_RSCD,通过重参数共享卷积增强表达能力。该模块在LSCD共享检测头基础上引入DiverseBranchBlock重参数卷积,保留三尺度预测与Proto掩码原型接口不变。相比原始Segment头,Segment_RSCD参数增加4%但计算量降低1.3%,在共享卷积结构中通过多分支补偿表达能力损失,同时利用Scale层保持尺度差异校准。该方法不改动Backbone/Neck结构,仅重构检测/分割头,实现训练期多路径聚合与部署期等效单分支的平衡。

qq_44224801的博客 185

水域大小 Java_leetcode —— 面试题 16.19. 水域大小

你有一个用于表示一片土地的整数矩阵land,该矩阵中每个点的值代表对应地点的海拔高度。若值为0则表示水域。由垂直、水平或对角连接的水域为池塘。池塘的大小是指相连接的水域的个数。编写一个方法来计算矩阵中所有池塘的大小,返回值需要从小到大排序。示例:输入:[[0,2,1,0],[0,1,0,1],[1,1,0,1],[0,1,0,1]]输出: [1,2,4]来源:力扣(LeetCode)链接:http...

weixin_36422707的博客 463

RK3568/RK3588 + YT 9215交换机芯片,MAC TO MAC 调试记录

原来的方案是rk3568 gmac 直接接phy,phy 接 switch 芯片,只是把交换芯片当交换用,驱动方面基本不用开发,但是要做vlan 那么必须涉及交换芯片的开发。选择裕太微有两个方面的原因:1.国产化替代2.可获得原厂技术支持3.目前已经完成 两个gmac 口交换芯片的配置,实现vlan,内部交换,两个光口可正常通信。

Nyiragongo的博客 1万+

繁星云LeetCode面试题 16.19. 水域大小 C++代码解析

LeetCode面试题 16.19. 水域大小 原题链接:水域大小1. 难点:如何计算每个水域的大小,并不会把水域的子集添加进去。2. 思路循环遍历二维数组,当碰到0时进入深度搜索,然后八个方向广度搜索,计算每个水域的大小,被记录过的0标记为1,避免重复统计。3. 代码注释变量定义的解释void dfs(vector<vector<int>>& land, int...

繁星云博客 447

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

LeetCode面试题 16.19 水域大小

LeetCode面试题 16.19 水域大小

流水账 336

lwip-2.0.3

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

图搜索 | 面试题 16.19. 水域大小*

本文记录的是刷题过程中的重要概念和笔记。如有侵权,请联系删除。

weixin_48315360的博客 323

OV9734 DATASHEET,完整规格书

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

[bfs][dfs]面试题 16.19. 水域大小(medium)

题目: 题解: bfs dfs 纯模板题,思路看代码即可。 代码如下: // 方向数组,由于对角线也算水域范围,所以为8个方向 int dx[]={-1,-1,0,1,1,1,0,-1},dy[]={0,1,1,1,0,-1,-1,-1}; // 用来标记水域是否被统计过 bool flag[1010][1010]; class Solution { public: void dfs(vector<vector<int>>& land,int i,int

algsup 524

DFS或BFS:力扣面试题 16.19. 水域大小

1、题目描述: 2、题解:

weixin_42042056的博客 471

LeetCode 面试题 16.19. Pond Sizes LCCI【DFS,BFS,并查集】中等

You have an integer matrix representing a plot of land, where the value at that loca­tion represents the height above sea level. A value of zero indicates water. A pond is a region of water connected vertically, horizontally, or diagonally. The size of the

memcpy0的博客 522

2023-06-22 LeetCode每日一题(水域大小)

每日一题练习,每一题都是修炼!

qq_56086076的博客 90

力扣-面试题16.19题 水域大小(C++)- BFS

题目链接:https://leetcode.cn/problems/pond-sizes-lcci/ 题目如下: class Solution { public: vector<int> pondSizes(vector<vector<int>>& land) { l=land; int m=land.size(); if(m==0) return res; int n=land[0].si

qq_40467670的博客 325

LeetCode-题目详解(十):递归【深度优先遍历(DFS;前序遍历、中序遍历、后序遍历)】【岛屿问题、水域问题、单词搜索问题】、【广度优先遍历(BFS;借助queue结构)】

对于递归要分清以下概念:在 LeetCode 中,「岛屿问题」是一个系列系列问题,比如:L200. 岛屿数量 (Easy) 463. 岛屿的周长 (Easy) 695. 岛屿的最大面积 (Medium) 827. 最大人工岛 (Hard)我们所熟悉的 DFS(深度优先搜索)问题通常是在树或者图结构上进行的。而我们今天要讨论的 DFS 问题,是在一种「网格」结构中进行的。岛屿问题是这类网格 DFS 问题的典型代表。网格结构遍历起来要比二叉树复杂一些,如果没有掌握一定的方法,DFS 代码容易写得冗长繁杂。本文将

u013250861的博客 629

LeetCod刷题笔记

2:物品 i 的状态集合与前 i-1 个物品的状态集合有交集时,物品 i 只有对第 2 组连一条线时才可能更新状态,这是因为有交集的那部分前 i-1 个物品中肯定有物品连过了,那对于前 i 个物品的这个二进制状态,当前物品再连肯定是浪费的,但是只连无交集的部分情况1已经包含了,所以为了防止当前的第 i 个物品一条线都不连,则再枚举一下只连一条线防止当前物品落下的情况。最后返回字符串数组里的最大值。因为一共 n 个物品,前 i-1 个物品状态集合大小是 2^m,当前第 i 个物品状态集合大小是 2^m。

m0_73731708的博客 844

算法:图

面试题 16.19. 水域大小

得克特 605

LeetCode-题目详解:树 --> 广度优先搜索【高频题:8、中频题:40、低频题:20】

LeetCode-题目详解:树 --> 广度优先搜索

u013250861的博客 396

LeetCode-【BFS】解题技巧

LeetCode题目:地图分析 题目分析(分析转自sweetiee): 这是一道典型的BFS基础应用,为什么这么说呢? 因为我们只要先把所有的陆地都入队,然后从各个陆地同时开始一层一层的向海洋扩散,那么最后扩散到的海洋就是最远的海洋! 并且这个海洋肯定是被离他最近的陆地给扩散到的! 下面是扩散的图示,1表示陆地,0表示海洋。每次扩散的时候会标记相邻的4个位置的海洋: 你可以想象成你从每个陆.........

lanzh_ 2231
上一篇: 【广度优先遍历-中等】695. 岛屿的最大面积、剑指 Offer II 105. 岛屿的最大面积
下一篇: 【广度优先搜索-中等】200. 岛屿数量
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值