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         }
  • 相关阅读:
    swiper 内容超出纵向滚动 解决办法
    js判断 微信浏览器 或者 QQ内置浏览器
    移动端滑动 增加弹性 滑动更加顺畅
    移动端点击激活时背景色
    文字两端对齐
    移动端元素被选中时,去除背景
    CSS动画 防止动画结束后,回归原位
    centos 防火墙配置
    知识图谱研究
    jmeter 压测工具
  • 原文地址:https://www.cnblogs.com/ordili/p/4928517.html
Copyright © 2011-2022 走看看