news 2026/8/6 20:52:46

算法-广度优先搜索-09

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法-广度优先搜索-09

力扣-真题-岛屿数量


我的想法是 初始化一个 sum代表岛屿数量,
没遍历到一个 1, sum = sum + 1
然后从这个位置开始 进行广度优先搜索 把所有相连的1 全部变成0 (原地修改)。 然后再继续向下遍历 。
就能得到所有岛屿数量了。

publicintnumIslands(char[][]grid){intsum=0;for(inti=0;i<grid.length;i++){for(intj=0;j<grid[0].length;j++){if(grid[i][j]=='0')continue;sum++;bfs(grid,i,j);}}returnsum;}publicvoidbfs(char[][]grid,inti,intj){//边界情况if(i>=grid.length||j>=grid[0].length||i==-1||j==-1||grid[i][j]=='0')return;grid[i][j]='0';//四个方向进行遍历bfs(grid,i,j+1);bfs(grid,i+1,j);bfs(grid,i-1,j);bfs(grid,i,j-1);}

嗯, 今天开始加一个环节

复杂度分析

首先空间复杂度 是 O(1) , 因为是原地修改 没有额外的存储空间浪费。
然后时间复杂度计算
咱们拆成几个部分, 首先

  • 第一个部分 肯定就是 两层 for循环遍历
    总共需要遍历 数组的数量m × 单个数组的元素数量n 此
    即 时间复杂度 在这一部分是 O(m×n)
  • 第二部分 也就是最后的一部分就是BFS 遍历
    这一部分的分析 可以这样
    如果 这个 节点是grid[x][y] = ‘0’ 啥也不用处理 O(1)
    如果 这个节点 是 grid[x][y] = ‘1’ 那个 除了 grid[x][y]置为 ‘1’外
    主要就是找相邻的‘1’置为 ‘0’ , 其实某种程度上来说, 你把其他节点 的 ‘1’ 置为 ‘0’ ,不就是帮其他节点做事吗 , 平摊下来 最多 每一个节点都把‘1’置为 ‘0’ , 也就是 在遍历 m× n的时候 顺便加一步 ‘1’置为 ‘0’ 以及 如果是 ‘0’ 跳过的判断, 这个时间复杂度 实际上是 O(1)
    当然啦, 最坏的情况下, grid[0][0】开始 bfs 会直接遍历整个图, 也就是m×n的复杂度。
    所以实际上 BFS的时间复杂度也是O(m×n)

但是这两部分的时间复杂度是分开的,互不影响,总体的时间复杂度就是O(m×n + m×n )= 2O(m×n)
常数因子忽略, 所以最终的时间复杂度就是O(m×n)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 6:27:24

公司网站wordpress主题推荐

视频背景wordpress官网主题红色风格的wordpress主题&#xff0c;首页视频背景&#xff0c;鼠标滚动翻转展示内容&#xff0c;适合公司官网使用。https://www.jianzhanpress.com/?p7288服务类公司wordpress企业主题红色大气的wordpress企业主题&#xff0c;适合服务行业的公司搭…

作者头像 李华
网站建设 2026/8/7 11:48:30

金融从业者福音:LobeChat搭建合规AI分析助手

金融从业者福音&#xff1a;LobeChat搭建合规AI分析助手 在智能投研、客户画像和风险建模日益成为金融机构核心竞争力的今天&#xff0c;生成式AI正以前所未有的速度重塑行业格局。然而&#xff0c;一个现实困境始终挥之不去&#xff1a;如何在享受大语言模型强大能力的同时&am…

作者头像 李华
网站建设 2026/8/6 22:02:51

LobeChat科技新闻深度解读

LobeChat&#xff1a;重塑大语言模型交互体验的开源框架 在今天&#xff0c;几乎每个科技公司都在尝试接入大语言模型&#xff08;LLM&#xff09;&#xff0c;从客服机器人到内部知识助手&#xff0c;AI 正以前所未有的速度渗透进我们的工作流。但一个现实问题随之浮现&#x…

作者头像 李华
网站建设 2026/8/7 3:26:20

LinkedIn职业建议:LobeChat撰写个人简介

LinkedIn职业建议&#xff1a;LobeChat撰写个人简介 在求职竞争日益激烈的今天&#xff0c;一份出色的LinkedIn个人简介可能就是你与理想机会之间的最后一道桥梁。它不只是简历的电子版延伸&#xff0c;而是一个展示专业形象、传递职业价值的动态窗口。然而&#xff0c;很多人依…

作者头像 李华
网站建设 2026/8/5 3:05:19

9 个 MBA 论文降AI工具,AI 写作优化推荐

9 个 MBA 论文降AI工具&#xff0c;AI 写作优化推荐 论文写作的战场&#xff0c;你是否也在挣扎&#xff1f; MBA毕业论文不仅是对专业知识的总结&#xff0c;更是对个人研究能力和学术素养的全面检验。然而&#xff0c;对于许多MBA学生来说&#xff0c;这却是一场艰难的战役。…

作者头像 李华
网站建设 2026/8/6 4:20:33

10 个高效降AI率工具,自考党必备!

10 个高效降AI率工具&#xff0c;自考党必备&#xff01; AI降重工具&#xff1a;自考党论文的“隐形护盾” 在当前学术写作环境中&#xff0c;随着AI技术的广泛应用&#xff0c;论文中出现AIGC痕迹的风险显著增加。对于自考学生而言&#xff0c;如何在保证内容质量的同时降低查…

作者头像 李华