当前位置: 首页 > news >正文

【剑斩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.jsqmd.com/news/263982/

相关文章:

  • Python+Vue的 林海生态园自动销售门票管理系统 django Pycharm flask
  • 2026新房装修不踩坑!超靠谱装修公司大揭秘 - 品牌测评鉴赏家
  • 腾讯云海外服务器装东西卡顿/有问题处理方案,把腾讯云镜像删除
  • 丑数不丑——从一个简单定义,看清“有序生成”这件大事
  • Python+Vue的HPV疫苗接种管理系统的设计与实现 django Pycharm flask
  • 吐血推荐9个AI论文工具,助本科生轻松写毕业论文!
  • 【图像增强】基于多目标粒子群PSO的水下图像自适应增强算法研究附Matlab代码
  • 首次装修不踩坑!2026装修新房省心装修公司挑选指南 - 品牌测评鉴赏家
  • StretchSense获230万美元融资,推动XR训练手套全球扩张
  • 使用ibd2sql恢复mysql环境被drop/truncate的表【转】
  • Python+Vue的基于协同过滤算法的图书馆管理系统 django Pycharm flask
  • 【图像机密】基于压缩感知中密钥控制测量矩阵的新型图像压缩-加密混合算法研究附matlab代码
  • 嵌入式模型轻量化实战,从技术原理到 STM32 部署落地
  • 详细介绍:Axure快速精通指南:从入门到高保真原型设计
  • 提示工程架构师带你领略Agentic AI提示工程自我学习能力的灵活性
  • 《实时渲染》第1章-绪论-1.1内容概览
  • AerialMegaDepth:学习空中-地面重建和视图合成 - MKT
  • 2026年PVC地板厂家口碑红榜,无醛环保型产品实力品牌甄选 - 品牌鉴赏师
  • vue基于Python 新疆特色美食电商平台设计与实现flask django Pycharm
  • 线段树多懒标记
  • 智能风控平台 scalability 设计:AI应用架构师的经验分享
  • 【顶刊未发表】基于混沌增强领导者黏菌算法CELSMA复杂山地危险模型无人机路径规划附Matlab代码
  • GESP认证C++编程真题解析 | 202306 三级
  • Python+Vue的笔记管理系统的设计与实现 django Pycharm flask
  • Python+Vue的 美食分享论坛的设计和实现 django Pycharm flask
  • SpringBoot 全局异常处理
  • 计算机小程序毕设实战-基于springboot+微信小程序的服装商城的设计与实现小程序基于微信小程序的在线服装商城店铺的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • Python+Vue的 第三方物流管理系统 django Pycharm flask
  • STM32F03C8T6通过AT指令获取天气API-下篇
  • 2024最新大数据架构趋势:云原生与湖仓一体实战指南