695. 岛屿的最大面积(深搜)
Posted niboss
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }
以上是关于695. 岛屿的最大面积(深搜)的主要内容,如果未能解决你的问题,请参考以下文章