【剑斩OFFER】算法的暴力美学——LeetCode 200 题:岛屿数量

一、题目描述

二、算法原理

思路:使用 BFS 算法

这道题目是基于:https://blog.csdn.net/2403_84958571/article/details/157102131?spm=1011.2415.3001.10575&sharefrom=mp_manage_link

图形化渲染的题目来的,因为图形化显然遍历上下左右时,将遍历的值修改了,所以不会重复遍历,所以:我们只要补充一下这道题:我们也弄出一个二维数组,大小跟题目给的一样,但是这里面存储的值为:bool 值,我们初始化时将他初始化为 fasle,代表未查找过的岛屿,如果我们使用 BFS 算法查找时,要将遍历过的值变成:true ,代表查找过了;

三、代码实现

class Solution { int dy[4] = {0,0,1,-1}; int dx[4] = {1,-1,0,0}; typedef pair<int,int> PII; void checkgrid(queue<PII>& que,vector<vector<bool>>& tmp,vector<vector<char>>& grid) { while(que.size())//BFS 算法 { auto [x,y] = que.front(); que.pop(); tmp[x][y] = true; for(int i = 0; i < 4; i++) { int a = x + dy[i]; int b = y + dx[i]; if(a >= 0 && a < tmp.size() && b >= 0 && b < tmp[0].size() && grid[a][b] == '1' && tmp[a][b] == false) { tmp[a][b] = true; que.push({a,b}); } } } } public: int numIslands(vector<vector<char>>& grid) { vector<vector<bool>> tmp(grid.size(),vector<bool>(grid[0].size(),false));//模拟遍历过的数组 int x = grid[0].size(); int y = grid.size(); queue<PII> que; int size = 0;//岛屿个数 for(int i = 0;i < y; i++)//遍历数组,找到未遍历过的岛屿,即:false { for(int k = 0; k < x;k++) { if(grid[i][k] == '1' && tmp[i][k] == false) { que.push({i,k}); size++; checkgrid(que,tmp,grid); } } } return size; } };

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1179450.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2026新房装修不踩坑!超靠谱装修公司大揭秘 - 品牌测评鉴赏家

2026新房装修不踩坑!超靠谱装修公司大揭秘一、装修前的焦虑:如何找到梦中情司? 家人们,谁懂啊!最近我终于拿到新房钥匙了,本以为能开开心心准备入住,可没想到,这才是烦恼的开始。面对空荡荡的房子,满心都是对…

腾讯云海外服务器装东西卡顿/有问题处理方案,把腾讯云镜像删除

场景&#xff1a;买了新加坡服务器 &#xff0c;装东西卡顿or有问题 、直接把腾讯云镜像删掉即可。 sudo sed -i s/mirrors.tencentyun.com/archive.ubuntu.com/g /etc/apt/sources.list /etc/apt/sources.list.d/*.sources 2>/dev/null# 2. 清理之前因为源同步失败留下的烂…

丑数不丑——从一个简单定义,看清“有序生成”这件大事

丑数不丑 从一个简单定义,看清“有序生成”这件大事 一、先别急着写代码:什么是丑数? 我们先说一句大白话版定义: 丑数,就是只包含质因子 2、3、5 的正整数。 比如: 1(特殊地,也算) 2、3、4、5、6、8、9、10、12 … 而下面这些就不是: 7(有 7) 14(2 7) 21(3 …

【图像增强】基于多目标粒子群PSO的水下图像自适应增强算法研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#x1f34…

首次装修不踩坑!2026装修新房省心装修公司挑选指南 - 品牌测评鉴赏家

首次装修不踩坑!2026装修新房省心装修公司挑选指南一、开篇引言:第一次装修,选对公司 = 省心一半 1.1 新手装修的 “血泪痛点”:为啥选公司这么难 第一次装修新房,那心情就像坐过山车,既兴奋又忐忑。兴奋的是终于…

轻松入门SpringAI-SpringAI实战入门案例

Spring AI 实战入门案例 &#xff08;2026年初 零基础到能跑完整小应用的路径&#xff09; 目标&#xff1a;用最短时间让你能自己跑通一个包含以下功能的 Spring AI 小应用&#xff1a; 普通聊天流式输出&#xff08;打字机效果&#xff09;带记忆的对话简单 RAG&#xff0…

强烈安利10个AI论文平台,助你轻松搞定本科生论文!

强烈安利10个AI论文平台&#xff0c;助你轻松搞定本科生论文&#xff01; AI 工具如何帮你轻松应对论文写作难题 对于本科生来说&#xff0c;撰写论文是一项既挑战又重要的任务。面对繁重的写作压力、复杂的格式要求以及对学术规范的不熟悉&#xff0c;很多同学都感到无从下手。…

Splat-Nav:首个基于 3D 高斯溅射地图的安全实时导航框架 - MKT

Splat-Nav:首个基于 3D 高斯溅射地图的安全实时导航框架

Splat-Nav:首个基于 3D 高斯溅射地图的安全实时导航框架 - MKT

Splat-Nav:首个基于 3D 高斯溅射地图的安全实时导航框架

StretchSense获230万美元融资,推动XR训练手套全球扩张

StretchSense获230万美元融资&#xff0c;推动XR训练手套全球扩张 可穿戴技术公司StretchSense已成功筹集230万美元资金&#xff0c;本轮融资由PXN Ventures领投&#xff0c;某机构提供支持。该公司目前已通过三轮外部融资筹集了总计近2000万美元。 StretchSense成立于2012年&a…

使用ibd2sql恢复mysql环境被drop/truncate的表【转】

导读 ibd2sql v2.2版本新增了恢复drop和truncate的表的功能. 这么叼? 我来瞅瞅呢 原理 虽然之前讲过原理, 但还是来简单回顾回顾:DROP TABLE是delete和insert系统表, 那么被删表之前的元数据信息就能找到, 虽然数据文…

Python+Vue的基于协同过滤算法的图书馆管理系统 django Pycharm flask

目录 这里写目录标题目录项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码详细视频演示收藏关注不迷路&#xff01;&#xff01;需要的小伙伴可以发链接或者截图给我 项目介绍 …

从Hadoop到Spark:大数据隐私保护技术演进史

从Hadoop到Spark:大数据隐私保护技术演进史 关键词:大数据隐私保护、Hadoop、Spark、数据脱敏、差分隐私、同态加密、访问控制 摘要:本文深入探讨了大数据处理框架从Hadoop到Spark演进过程中隐私保护技术的发展历程。文章首先介绍大数据生态系统的演变背景,然后详细分析各阶…

【图像机密】基于压缩感知中密钥控制测量矩阵的新型图像压缩-加密混合算法研究附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#x1f34…

Python+Vue的HPV疫苗接种管理系统的设计与实现 django Pycharm flask

目录 这里写目录标题目录项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码详细视频演示收藏关注不迷路&#xff01;&#xff01;需要的小伙伴可以发链接或者截图给我 项目介绍 …

深入解析:AIOps / AI-Network / 智能运维:迈向自治网络的核心引擎

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【毕业设计】基于springboot+微信小程序的服装商城的设计与实现小程序(源码+文档+远程调试,全bao定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

嵌入式 Modbus 实战,从协议原理到 STM32 RTU 通信落地

在工业自动化、物联网设备通信中,Modbus 协议因 “简单可靠、兼容性强” 成为事实标准 —— 它无需复杂硬件支持,仅通过串口(RS485/RS232)即可实现设备间数据交互,广泛应用于传感器、PLC、单片机等嵌入式设备。本…

嵌入式模型轻量化实战,从技术原理到 STM32 部署落地

在单片机、智能传感器等嵌入式设备上部署 AI 模型,核心矛盾是 “模型庞大” 与 “资源有限” 的冲突 —— 多数嵌入式设备仅有几十 KB 内存、几百 KB 闪存,且无独立 GPU。模型轻量化通过 “精简结构、降低精度、传承…

吐血推荐9个AI论文工具,助本科生轻松写毕业论文!

吐血推荐9个AI论文工具&#xff0c;助本科生轻松写毕业论文&#xff01; AI工具让论文写作不再难 在如今的学术环境中&#xff0c;越来越多的学生开始借助AI工具来提升论文写作的效率和质量。尤其是在面对毕业论文时&#xff0c;时间紧迫、内容繁杂&#xff0c;很多同学都感到无…