码迷,mamicode.com
首页 > 其他好文 > 详细

水域大小

时间:2020-11-13 13:11:37      阅读:9      评论:0      收藏:0      [点我收藏+]

标签:i++   code   int   i+1   length   turn   包含   lang   计数   

技术图片

经典dfs将当前位置传入,标记和当前点一类的点,同时进行计数

class Solution {
    public int[] pondSizes(int[][] land) {
    List<Integer> res = new  LinkedList<>();
    int m = land.length,n = land[0].length;

    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            if(land[i][j] == 0) res.add(findArea(land,i,j));
        }
    }
    int[] ans = res.stream().mapToInt(Integer::valueOf).toArray();
    Arrays.sort(ans);
    return ans;
    }
    public int findArea(int[][] land,int i,int j){
        if(i < 0 || i >= land.length || j < 0 || j >= land[0].length || land[i][j] != 0){
            return 0;
        }
        //走过池塘的进行标记
        land[i][j] = -1;
        //包含当前的池塘
        int res = 1;
        
        res += findArea(land,i+1,j+1);
        res += findArea(land,i-1,j-1);
        res += findArea(land,i+1,j);
        res += findArea(land,i-1,j);
        res += findArea(land,i,j+1);
        res += findArea(land,i,j-1);
        res += findArea(land,i+1,j-1);
        res += findArea(land,i-1,j+1);
        
        return res;


    }

}


技术图片

水域大小

标签:i++   code   int   i+1   length   turn   包含   lang   计数   

原文地址:https://www.cnblogs.com/cstdio1/p/13945603.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!