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

c++ 网站开发广州项目网络推广性价比

c++ 网站开发,广州项目网络推广性价比,上海建设行政主管部门政务网站,怎么做论坛社区网站岛屿数量 给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以…

岛屿数量

  • 给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。

岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。

此外,你可以假设该网格的四条边均被水包围。

示例 1:

输入:grid = [
[“1”,“1”,“1”,“1”,“0”],
[“1”,“1”,“0”,“1”,“0”],
[“1”,“1”,“0”,“0”,“0”],
[“0”,“0”,“0”,“0”,“0”]
]
输出:1

解题思路

  • 1、使用深度优先搜索DFS来遍历二维网格,找到所有岛屿。(PS: 深度优先搜索(DFS)一般是使用递归来实现)
  • 2、对于每个遍历到的陆地(‘1’),开始进行搜索,将其与相邻的陆地标记为已访问过,直到将整个岛屿搜索完成。
  • 3、统计搜索过程中遇到的岛屿数量。

Java实现

public class NumberOfIslands {public int numIslands(char[][] grid) {if (grid == null || grid.length == 0 || grid[0].length == 0) {return 0;}int m = grid.length;int n = grid[0].length;int count = 0;
//        {'1', '1', '0', '0', '0'},
//        {'1', '1', '0', '0', '0'},
//        {'0', '0', '1', '0', '0'},
//        {'0', '0', '0', '1', '1'}for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (grid[i][j] == '1') {// 当前位置为陆地,开始进行深度优先搜索// 直到grid[i][j]周边没有相连的陆地dfs(grid, i, j);// 每开始一次搜索,岛屿数量加一count++;}}}return count;}/*** 深度优先搜索函数* @param grid* @param i* @param j*/private void dfs(char[][] grid, int i, int j) {int m = grid.length;int n = grid[0].length;// 边界条件和递归终止条件if (i < 0 || i >= m || j < 0 || j >= n || grid[i][j] == '0') {return;}grid[i][j] = '0'; //将当前单元格标记为已访问//继续搜索当前位置的上、下、左、右四个方向,探索相邻的单元格//直到没有相邻的岛屿(grid[i][j] == '0')dfs(grid, i + 1, j);dfs(grid, i - 1, j);dfs(grid, i, j + 1);dfs(grid, i, j - 1);}public static void main(String[] args) {NumberOfIslands islands = new NumberOfIslands();char[][] grid = {{'1', '1', '0', '0', '0'},{'1', '1', '0', '0', '0'},{'0', '0', '1', '0', '0'},{'0', '0', '0', '1', '1'}};System.out.println("Number of islands: " + islands.numIslands(grid));}
}

时间空间复杂度

  • 时间复杂度:O(m * n),其中 m 和 n 分别是二维网格的行数和列数,因为需要遍历整个二维网格。

  • 空间复杂度:O(m * n),深度优先搜索的递归调用可能达到 O(m * n) 的深度,其中 m 和 n 分别是二维网格的行数和列数。

http://www.yayakq.cn/news/651367/

相关文章:

  • 酒店网站建设 源码wordpress改微博系统
  • 网站开发包WordPress智能友链审核
  • 向谷歌提交网站东莞网约车平台
  • 网站建设与管理学习收获wordpress博客发布软件
  • 手机网站源文件国外网站视频播放器
  • 广州自助网站制作网站建设包括哪些
  • 女生做网站编辑河北seo网站优化公司
  • php网站开发综合案例山西中交建设工程招标有限公司网站
  • 网站建设公司下载微信开发网站建设
  • 湛江网站开发哪家专业wordpress the id
  • 网站的模板怎么做网站数据库设计模板
  • 建站平台在线提交表格功能东风地区网站建设
  • 吐鲁番市建设局网站wordpress的wp_list_cats
  • 水利建设工程网站将html和wordpress分开
  • 网站建设和维护哪个好寺院的网站怎么做
  • 正规的佛山网站建设价格看济南新闻
  • 小型企业做网站的价格电子公司网站设计
  • 个人介绍网站内容长沙旅游景点大全排名
  • 任务网站开发凡科网多页网站怎样做
  • 建设网站合同范本北京品牌设计公司排名前十强
  • 医疗网站建设平台北京提供24小时医疗服务
  • 公司网站招聘的作用网站制作 长沙
  • 公司网站管理维护中铁十六局集团门户登录
  • 找人做网站应该注意什么郑州微信网站建设
  • 佛山网站优化怎么做网站建设公司如何开拓客户
  • 环保企业网站模板天津网站建设推荐安徽秒搜科技
  • 懒人学做网站网站开发过程中出现的问题
  • 长沙网站开发微联讯点不错网站 方案
  • 优化网站推广排名合肥做网站的的公司
  • 枣庄三合一网站建设公司做网站后台的时候要注意什么