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 }
  • 相关阅读:
    jmeter导出提取的值或参数化的值到excel
    超级有用的正则表达式
    性能测试监控
    asp.net 多线程
    VS代码格式化快捷键
    JS判断IE版本
    Jquery原创排序table
    将aspx转化为html代码
    Java基本语法——变量
    Entity Framework 中的LazyLoading
  • 原文地址:https://www.cnblogs.com/wzj4858/p/7672682.html
Copyright © 2011-2022 走看看