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

网站建设项目规划审批重庆大渝网最新消息

网站建设项目规划审批,重庆大渝网最新消息,凯里州建公司简介,洛杉矶网站建设岛屿数量 给你一个由 ‘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/384662/

相关文章:

  • 网站建设案例哪家好免费软件推荐
  • 中国企业排名前十360优化大师官方下载
  • 江门网站建设企业顺企网江西网站建设
  • wordpress的网站无法发布文章北京酷站科技有限公司
  • 做投资的网站好微信公众号登录平台登录
  • 娄星区建设局网站网络销售技巧
  • 网站授权协议网页设计师是什么专业
  • 淮南建设公司网站网站网址正能量
  • 伪静态一个虚拟空间做两个网站濮阳的网站建设
  • 建设银行网站怎么看交易记录搜狐网站网络营销怎么做
  • c2c网站有哪几个泊头西环网站建设
  • 软件公司宣传册设计样本株洲seo优化首选
  • 服饰网站建设目的商标注册查询中心
  • 网站建设程序有哪些模版网站建设步骤详解
  • 风铃建站模板网站备案人有什么责任
  • 如何采集网站文章线上宣传的方式
  • wordpress手机站主题国际贸易网登录
  • 安徽兴罗建设集团网站苏州优化排名seo
  • 拆分盘的网站开发费用广州seo优化代理
  • 淘宝网站建设哪个类目网站后台安全
  • php网站开发怎么接私活网站建设案例步骤
  • 网页制作与网站建设实战大全pdfwordpress请求接口的方式
  • 什么行业需要做网站网站为什么维护
  • 五种网站类型如何申请域名建网站
  • 网站开发与设计静态网页源代码网站开发时间进度表
  • 开发软件的网站网站后缀net
  • 新乡哪有网站建设公司wordpress4.9.6中文版
  • 网站要怎么做才能获得市场份额图片wordpress主题
  • 东莞市品牌网站建设手机网站 动态 页面 好 静态页面好
  • wordpress页面难看山西网络营销seo