/**
* Created by Joe on 2018/4/7
* 695. Max Area of Island
* https://leetcode.com/problems/max-area-of-island/description/
*/
public class P695 {
private int m;
private int n;
public int maxAreaOfIsland(int[][] grid) {
m = grid.length;
n = grid[0].length;
int maxArea = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (grid[i][j] == 1) {
//計算面積
int area = getArea(grid, i, j);
//獲取最大面積
maxArea = Math.max(area, maxArea);
}
}
}
return maxArea;
}
private int getArea(int[][] grid, int i, int j) {
//邊界值判斷
if(i >= m || j >= n || i < 0 || j < 0 || grid[i][j] == 0) return 0;
//置0爲了減少重複計算
grid[i][j] = 0;
return 1 +
//四個方向遞歸
getArea(grid, i + 1, j) +
getArea(grid, i, j + 1) +
getArea(grid, i-1, j) +
getArea(grid,i, j-1);
}
}
695. Max Area of Island
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.