zoukankan      html  css  js  c++  java
  • Number of Islands

    1. Title

    Number of Islands

    2. Http address

    https://leetcode.com/problems/palindrome-linked-list/

    3. The question

    Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water.

    Example 1:

    11110
    11010
    11000
    00000
    Answer: 1

    Example 2:

    11000
    11000
    00100
    00011
    Answer: 3

    4. My code(AC)

     1     // Accepted
     2        public int numIslands(char[][] grid) {
     3              if ( grid == null || grid.length == 0 )
     4                  return 0;
     5             boolean visited[][] = new boolean[grid.length][grid[0].length];
     6             int count = 0;
     7             for(int i = 0 ; i < grid.length; i++ )
     8             {
     9                 for(int j = 0 ; j <grid[0].length; j++ )
    10                 {
    11                     if( grid[i][j] == '1' && visited[i][j] == false )
    12                     {
    13                         DFS(grid,i,j,visited);
    14                         count++;
    15                     }
    16                 }
    17             }
    18 
    19             return count;
    20     
    21         }
    22         public  void DFS(char [][]grid, int i ,int j, boolean [][]visited){
    23 
    24                 if( visited[i][j] != false)
    25                         return;
    26                 int x = 0, y =0;
    27                 visited[i][j] = true;
    28                 //up
    29                 x = i-1;
    30                 y = j;
    31                 if( x >= 0  && grid[x][y] == '1' && visited[x][y] == false ){
    32                     DFS(grid, x, y ,visited);
    33                 }
    34                 
    35                 //down
    36                 x = i + 1;
    37                 y = j;
    38                 if( x < grid.length  && grid[x][y] == '1' && visited[x][y] == false ){
    39                     DFS(grid, x, y ,visited);
    40                 }
    41 
    42                 //left
    43                 x = i;
    44                 y = j-1;
    45                 if( y >= 0 && grid[x][y] == '1' && visited[x][y] == false ){
    46                     DFS(grid, x, y ,visited);
    47                 }
    48                 
    49 
    50                 //right
    51                 x = i;
    52                 y = j+1;
    53                 if( y < grid[0].length  && grid[x][y] == '1' && visited[x][y] == false ){
    54                     DFS(grid, x, y ,visited);
    55                 }
    56 
    57         }
  • 相关阅读:
    js 表格上下移动 javascript实现
    存储过程-----DECLARE---实用注意事项
    储存过程-原理、语法、函数详细说明
    第九章 接口
    第八章 多态
    第七章 类复用
    synchronized ---- 作用
    集合框架综述
    java static代码块执行时机
    状态模式
  • 原文地址:https://www.cnblogs.com/ordili/p/4928517.html
Copyright © 2011-2022 走看看