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

leetcode hot100刷题日记——15.岛屿数量

在这里插入图片描述
解答一:

class Solution {
public:void dfs(vector<vector<char>>& grid,int r,int c){int row=grid.size();int col=grid[0].size();grid[r][c]='0';if(r-1>=0&&grid[r-1][c]=='1'){dfs(grid,r-1,c);//上}if(r+1<row&&grid[r+1][c]=='1'){dfs(grid,r+1,c);//下}if(c-1>=0&&grid[r][c-1]=='1'){dfs(grid,r,c-1);//左}if(c+1<col&&grid[r][c+1]=='1'){dfs(grid,r,c+1);//右}}int numIslands(vector<vector<char>>& grid) {//方法一:深度优先搜索//二维网格看成无向图,竖直或水平相邻的1之间有边相连。//如果一个位置为 1,则以其为起始节点开始进行深度优先搜索。在深度优先搜索的过程中,每个搜索到的 1 都会被重新标记为 0。//最终岛屿数量就是我们进行深度优先搜索的次数int row=grid.size();if(row==0){return 0;}int col=grid[0].size();int res=0;for(int i=0;i<row;i++){for(int j=0;j<col;j++){if(grid[i][j]=='1'){res++;dfs(grid,i,j);}}}return res;}
};

时间复杂度和空间复杂度均为O(MN)

解答二:

class Solution {
public:int numIslands(vector<vector<char>>& grid) {//方法二:广度优先搜索//依旧是队列和置0思想int row=grid.size();if(row==0){return 0;}int col=grid[0].size();queue<pair<int,int>>Q;int res=0;for(int i=0;i<row;i++){for(int j=0;j<col;j++){if(grid[i][j]=='1'){grid[i][j]='0';Q.push({i,j});res++;//把这个岛屿的所有位置探完while(!Q.empty()){auto cur=Q.front();Q.pop();int cur_row=cur.first;int cur_col=cur.second;if(cur_row-1>=0&&grid[cur_row-1][cur_col]=='1'){Q.push({cur_row-1,cur_col});grid[cur_row-1][cur_col]='0';}if(cur_row+1<row&&grid[cur_row+1][cur_col]=='1'){Q.push({cur_row+1,cur_col});grid[cur_row+1][cur_col]='0';}if(cur_col-1>=0&&grid[cur_row][cur_col-1]=='1'){Q.push({cur_row,cur_col-1});grid[cur_row][cur_col-1]='0';}if(cur_col+1<col&&grid[cur_row][cur_col+1]=='1'){Q.push({cur_row,cur_col+1});grid[cur_row][cur_col+1]='0';}}}}}return res;}
};

时间复杂度和空间复杂度均为O(MN)

相关文章:

  • Docker 安装 Harbor 教程(搭建 Docker 私有仓库 harbor 避坑指南)【woodwhales.cn】
  • java基础(面向对象进阶)
  • STM32中的IIC协议和OLED显示屏
  • ARM笔记-ARM指令集
  • 算法学习——从零实现循环神经网络
  • 7:QT加载保存参数(读写日志)
  • 5 分钟速通密码学!
  • List<Integer> list=new ArrayList<>()
  • Nginx stub_status 指南从启用到监控落地的全流程详解
  • 廉价却有效?ESD防护中的电容
  • 企业批量处理刚需PrintPDF 网络财务办公打印 网页到 Office 一键转 PDF
  • 【PhysUnits】10 减一操作(sub1.rs)
  • css五边形
  • 无需会员可一键转换
  • 【go】多线程编程如何识别和避免死锁,常见死锁场景分析,pprof使用指引
  • 【RK3588新品】嵌入式人工智能实验箱EDU-AIoT ELF 2发布
  • 物联网代理暴利逻辑拆解:格行随身WiFi三网切换技术实战分析
  • 日常效率工具【Tools】【持续更新】
  • Spring Cloud Gateway 微服务网关实战指南
  • 力扣48 .旋转图像 (最简单的方法)
  • 网站建设定制公司/宣传推广方案
  • 周口哪里有做网站的/windows优化大师
  • 官网网站建设公司/谷歌seo网站优化
  • wordpress能输数学公式吗/安徽seo
  • 网站导航条做多高/亚马逊关键词排名提升
  • 建设一个网站平台的费用/网页广告调词平台多少钱