zoukankan      html  css  js  c++  java
  • 695. 岛屿的最大面积(深搜)

    递归算法真是太优美了

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int x) { val = x; }
     7  * }
     8  */
     9 class Solution {
    10     static int Area,Col,Row,temp;
    11     static int[][] grid;
    12     static int[][] dxy={{0,1},{1,0},{0,-1},{-1,0}}; //四联通分量
    13 
    14     private void dfs(int i,int j){
    15         temp++;
    16         grid[i][j]=0; //移除已计算岛屿块
    17         for(int k=0;k<4;k++){
    18             int x=i+dxy[k][0],y=j+dxy[k][1];
    19             if(x>=0&&x<Col&&y>=0&&y<Row&&grid[x][y]==1) dfs(x,y);
    20         }
    21     }
    22 
    23     public int maxAreaOfIsland(int[][] grid) {
    24         //初始全局变量
    25         Area=0;
    26         Col=grid.length;
    27         Row=grid[0].length;
    28         this.grid=grid;
    29         //循环入口
    30         for(int i=0;i<grid.length;i++){
    31             for(int j=0;j<grid[0].length;j++){
    32                 if(grid[i][j]==1){ //
    33                     temp=0;  //设置初始面积值
    34                     dfs(i,j); //递归搜索
    35                     if(Area<temp) Area=temp; //该岛屿与已记录岛屿块面积值进行比较
    36                 }
    37             }
    38         }
    39         return Area;
    40     }
    41 }
  • 相关阅读:
    SSL 1010——方格取数
    SSL 1558——科技庄园
    SSL 2295——暗黑破坏神
    SSL 2294——打包
    SSL 2293——暗黑游戏
    SSL 2305——竞赛总分
    SSL 1072——砝码称重
    SSL 2291——分组背包
    SSL 2290——潜水员
    SSL 2301——混合背包
  • 原文地址:https://www.cnblogs.com/NiBosS/p/12003806.html
Copyright © 2011-2022 走看看