695. Max Area of Island

桃扇骨 2022-05-28 14:15 234阅读 0赞
  1. /** * Created by Joe on 2018/4/7 * 695. Max Area of Island * https://leetcode.com/problems/max-area-of-island/description/ */
  2. public class P695 {
  3. private int m;
  4. private int n;
  5. public int maxAreaOfIsland(int[][] grid) {
  6. m = grid.length;
  7. n = grid[0].length;
  8. int maxArea = 0;
  9. for (int i = 0; i < m; i++) {
  10. for (int j = 0; j < n; j++) {
  11. if (grid[i][j] == 1) {
  12. //计算面积
  13. int area = getArea(grid, i, j);
  14. //获取最大面积
  15. maxArea = Math.max(area, maxArea);
  16. }
  17. }
  18. }
  19. return maxArea;
  20. }
  21. private int getArea(int[][] grid, int i, int j) {
  22. //边界值判断
  23. if(i >= m || j >= n || i < 0 || j < 0 || grid[i][j] == 0) return 0;
  24. //置0为了减少重复计算
  25. grid[i][j] = 0;
  26. return 1 +
  27. //四个方向递归
  28. getArea(grid, i + 1, j) +
  29. getArea(grid, i, j + 1) +
  30. getArea(grid, i-1, j) +
  31. getArea(grid,i, j-1);
  32. }
  33. }

发表评论

表情:
评论列表 (有 0 条评论,234人围观)

还没有评论,来说两句吧...

相关阅读