Leetcode之深度优先搜索(DFS)专题

Leetcode之深度优先搜索(DFS)专题-200. 岛屿数量(Number of Islands)

深度优先搜索的解题详细介绍,点击


1给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 2 3示例 1: 4 5输入: 611110 711010 811000 900000 10 11输出: 1 12示例 2: 13 14输入: 1511000 1611000 1700100 1800011 19 20输出: 3

分析:这题同样是求连通块,相比于130. 被围绕的区域(Surrounded Regions)题少了很多限制条件,同样引入vis,点从其四个方向搜索。

1class Solution { 2 int vis[][] = null; 3 int dirx[] = {0,0,1,-1}; 4 int diry[] = {1,-1,0,0}; 5 public int numIslands(char[][] grid) { 6 if(grid==null || grid.length==0){ 7 return 0; 8 } 9 int ans = 0; 10 vis = new int[grid.length][grid[0].length]; 11 12 for(int i=0;i<grid.length;i++){ 13 for(int j=0;j<grid[0].length;j++){ 14 if(grid[i][j]=='1' && vis[i][j]!=1){ 15 ans++; 16 dfs(grid,i,j); 17 } 18 } 19 } 20 return ans; 21 } 22 public void dfs(char[][] board,int x,int y){ 23 if(x<0 || y<0 || x>=board.length || y>=board[0].length || board[x][y]=='0' || vis[x][y]==1){ 24 return; 25 } 26 vis[x][y] = 1; 27 for(int i=0;i<4;i++){ 28 int xx = x+dirx[i]; 29 int yy = y+diry[i]; 30 dfs(board,xx,yy); 31 } 32 33 34 } 35}
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

前端学数据结构与算法:二叉树的四种遍历方式及其应用

前言上一章我们从0到1的实现了一颗二叉搜索树,以及理解了二叉搜索树的特性与基本操作,这一章介绍关于二叉树的更多操作,也就是树的遍历,对树的每个节点进行访问。主要包括前序遍历、中序遍历、后序遍历、层序遍历,前面三种也叫深度优先遍历(DFS),最后的层序遍历也叫广度优先遍历(BFS),理解这四种遍历方式的不同,再遇到树相关的算法问题时,也就能更加游刃有余。这

PPDB:今晚老齐直播

【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。