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         }
  • 相关阅读:
    2018/12/06 L1-031 到底是不是太胖了 Java
    2018/12/06 L1-030 一帮一 Java
    2018/12/06 L1-029 是不是太胖了 Java
    .NET Framework 类库命名空间
    .NET获取根目录
    ddd领域驱动设计
    垃圾回收
    rest api
    数据库ACID
    事务隔离级别
  • 原文地址:https://www.cnblogs.com/ordili/p/4928517.html
Copyright © 2011-2022 走看看