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         }
  • 相关阅读:
    win10 下安装 tesseract + tesserocr
    win 10 家庭中文版安装docker ,但是没有 Hyper-V , 这样一步搞定
    Pycharm 分屏
    cookie 和 session
    retrying 模块
    Pychram 运行程序在 run 窗口和 python console 窗口之间切换
    封装、继承、多态
    泛型、反射、注解
    多线程笔记
    多线程
  • 原文地址:https://www.cnblogs.com/ordili/p/4928517.html
Copyright © 2011-2022 走看看