zoukankan      html  css  js  c++  java
  • 695. Max Area of Island

    Given a non-empty 2D array grid of 0's and 1's, an island is a group of 1's (representing land) connected 4-directionally (horizontal or vertical.) You may assume all four edges of the grid are surrounded by water.

    Find the maximum area of an island in the given 2D array. (If there is no island, the maximum area is 0.)

    Example 1:

     [0,0,1,0,0,0,0,1,0,0,0,0,0],
     [0,0,0,0,0,0,0,1,1,1,0,0,0],
     [0,1,1,0,1,0,0,0,0,0,0,0,0],
     [0,1,0,0,1,1,0,0,1,0,1,0,0],
     [0,1,0,0,1,1,0,0,1,1,1,0,0],
     [0,0,0,0,0,0,0,0,0,0,1,0,0],
     [0,0,0,0,0,0,0,1,1,1,0,0,0],
     [0,0,0,0,0,0,0,1,1,0,0,0,0]]
    

    Given the above grid, return 6. Note the answer is not 11, because the island must be connected 4-directionally.

    Example 2:

    [[0,0,0,0,0,0,0,0]]

    Given the above grid, return 0.

    含义:给定一个二维数组,垂直或水平方向连续的1构成一个岛屿,找出一个面积最大的岛屿。

     1 class Solution {
     2     
     3     int AreaOfIsland(int[][] grid, int i, int j){
     4         if (i>=0 && i<grid.length && j>=0 && j<grid[0].length && grid[i][j] == 1)
     5         {
             //周围四个节点的面积,加上本节点的面积1
    6 grid[i][j]=0; 7 return AreaOfIsland(grid,i-1,j) + AreaOfIsland(grid,i+1,j) + AreaOfIsland(grid,i,j-1) + AreaOfIsland(grid,i,j+1) + 1; 8 } 9 return 0; 10 } 11 12 public int maxAreaOfIsland(int[][] grid) { 13 int maxArea = 0; 14 for (int i=0;i<grid.length;i++) 15 for (int j=0;j<grid[0].length;j++) 16 { 17 if (grid[i][j] == 1) maxArea = Math.max(maxArea,AreaOfIsland(grid,i,j)); 18 } 19 return maxArea; 20 } 21 }
  • 相关阅读:
    Android UI设计规范之常用单位
    Git Clone报错
    Android Studio导入项目,报错 Error:Unsupported method: BaseConfig.getApplicationIdSuffix().
    图片的旋转、缩放操作的分类
    输入和输出
    Python的交互模式和命令行模式
    认识Python
    内存泄漏
    查看服务器的内存使用量
    MAC的VMWare CentOS 6.8命令笔记
  • 原文地址:https://www.cnblogs.com/wzj4858/p/7672682.html
Copyright © 2011-2022 走看看