200. 岛屿数量

技术200. 岛屿数量 200. 岛屿数量描述
给你一个由'1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。
岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆

200.岛屿数量

描述

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

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

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

链接

200.岛屿数量-力扣(LeetCode)(leetcode-cn.com)

解法:回溯法(思路比较清晰)

类别解决方案{

publiintnumislands(char[][]grid){ 0

int count=0;

int[][]mark=new int[grid。长度][网格[0].长度];

对于(int[]c :标记){ 0

Arrays.fill(c,0);

}

for(inti=0;igrid . LengIti){ 0

for(int j=0;jgrid[i].长度;j ){

如果(标记[I][j]==0网格[I][j]==' 1 '){ 0

DFS(网格,I,j,mark);

计数;

}

}

}

返回计数

}

privatevoidDFS(char[][]grid,intx,inty,int[][]mark){ 0

mark[x][y]=1;

int[]dx={-1,1,0,0 };

int[]dy={0,0,-1,1 };

for(int k=0;k4;k){ 0

intnewDx=dx[k]x;

intnewDy=dy[k]y;

if(new dx0 | | new dx=grid。长度| |新dy0 | |新dy=网格[新dx].长度){ 0

继续;

}

如果(标记[NewDx][NewDy]==0网格[NewDx][NewDy]===' 1 '){ 0

DFS(网格、newDx、newDy、mark);

}

}

}

}

可详细参考

AlgoMooc算法慕课网

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/130346.html

(0)

相关推荐

  • 草房子主要内容50字,草房子第七章主要内容50字

    技术草房子主要内容50字,草房子第七章主要内容50字《草房子》第七章主要内容主要讲的是白雀离开蒋一轮后草房子主要内容50字,蒋一轮的心情和脾气越来越坏,经常批评同学。当班上有一个叫戚小罐的学生不遵守课堂纪律,还不停的听他

    生活 2021年10月24日
  • net core响应时间超时的配置(netcore 开启内存释放)

    技术.NET Core 配置对GC工作模式与内存的影响是什么这篇文章将为大家详细讲解有关.NET Core 配置对GC工作模式与内存的影响是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相

    攻略 2021年12月15日
  • 如何理解C++属性具体概念

    技术如何理解C++属性具体概念本篇文章给大家分享的是有关如何理解C++属性具体概念,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C++编程语言中的属性是一个

    攻略 2021年10月27日
  • Java如何调用Google API spelling check拼写检查

    技术Java如何调用Google API spelling check拼写检查这篇文章将为大家详细讲解有关Java如何调用Google API spelling check拼写检查,文章内容质量较高,因此小编分享给大家做

    攻略 2021年10月23日
  • Promise的介绍及基本用法是什么

    技术Promise的介绍及基本用法是什么这期内容当中小编将会给大家带来有关Promise的介绍及基本用法是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Promise是ES6引入的

    攻略 2021年10月22日
  • 常用的gis计算方法有哪些

    技术常用的gis计算方法有哪些这篇文章主要为大家展示了“常用的gis计算方法有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“常用的gis计算方法有哪些”这篇文章吧。在系统

    攻略 2021年12月1日