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

    该题目要算出矩阵中有多少个数值为“1”的数据块。主要思路是对矩阵进行遍历,遇到“1”的元素的时候,对元素进行深度遍历,并将“1”元素改为非“1”。

    代码如下:

     1 class Solution {
     2     public int numIslands(char[][] grid) {
     3         int res = 0;
     4         if(grid == null || grid.length == 0){
     5             return res;
     6         }
     7         
     8         int m = grid.length, n = grid[0].length;
     9         
    10         for( int i = 0 ; i < m ; i++ ){
    11             for( int j = 0 ; j < n ; j++){
    12                 if(grid[i][j] == '1'){
    13                     res ++;
    14                     occupyIsland(grid, i, j);
    15                 }
    16             }
    17         }
    18         
    19         return res;
    20     }
    21     
    22     private void occupyIsland(char[][] grid, int i, int j){
    23         grid[i][j] = '2';
    24         
    25         int m = grid.length, n = grid[0].length;
    26         if( i+1 < m && grid[i+1][j] == '1'){
    27             occupyIsland(grid, i+1, j);
    28         }
    29         if( j+1 < n && grid[i][j+1] == '1'){
    30             occupyIsland(grid, i, j+1);
    31         }
    32         if( i-1 >= 0 && grid[i-1][j] == '1'){
    33             occupyIsland(grid, i-1, j);
    34         }
    35         if( j-1 >= 0 && grid[i][j-1] == '1'){
    36             occupyIsland(grid, i, j-1);
    37         }        
    38     }
    39 }

    END

  • 相关阅读:
    RabbitMq
    SAAS-HEM
    java框架
    数据结构
    JVM
    springboot高级
    面试题汇总
    vue
    bootforum
    SpringBoot
  • 原文地址:https://www.cnblogs.com/sssysukww/p/8989501.html
Copyright © 2011-2022 走看看