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)

相关推荐

  • java枚举是怎么保证线程安全的

    技术java枚举是怎么保证线程安全的本篇内容介绍了“java枚举是怎么保证线程安全的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够

    攻略 2021年11月19日
  • 与dna结合的profile数据库(数据库怎么创建my profile文件)

    技术数据库中如何实现PROFILE这篇文章给大家分享的是有关数据库中如何实现PROFILE的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、创建CREATE PROFILE <profile_

    攻略 2021年12月13日
  • 用锲而不舍造句,锲而不舍的“而”字是什么意思

    技术用锲而不舍造句,锲而不舍的“而”字是什么意思“而”应为表假设的连词用锲而不舍造句。 这个词来自“锲而舍之,朽木不折,锲而不舍,金石可镂”(《劝学》-荀子); 我们再来看而的用法,“而”在文言文中常用作连词,但连词的关

    生活 2021年10月24日
  • 怎么使用数据泵的parfile

    技术怎么使用数据泵的parfile本篇内容介绍了“怎么使用数据泵的parfile”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有

    攻略 2021年11月9日
  • QT乱翻书-Spin

    技术QT乱翻书-Spin QT乱翻书-Spin跳转到大纲 码云QT乱翻书-Spin#ifndef WIDGET_H
    #define WIDGET_H#include QWidgetnamespace U

    礼包 2021年12月14日
  • sparkstreaming数据量(使用sparkstreaming的必要性)

    技术如何理解Spark Streaming的数据可靠性和一致性如何理解Spark Streaming的数据可靠性和一致性,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决

    攻略 2021年12月17日