岛屿问题

FE07EEE1F0268775C646E844B05BFF2D.png

public class Solution {
//用来保存结果
    public int[][] res;
//用来计算1的个数
    public int sum = 0;

//写到结果中
    void writeRes(int[][] res){
        for(int i=0;i=m.length || j<0 || j>=m[0].length)
            return;

        if(m[i][j] == 0)
            return;

        sum++;
//如果为1 就把它变成0,直到把所有的岛屿都给沉没掉
        m[i][j] = 0;
        res[i][j] = 1;
        dfs(m,i+1,j);
        dfs(m,i,j+1);
        dfs(m,i,j-1);

    }

    public int[][] solute(int[][] m){
        res = new int[m.length][m[0].length];
        for(int i=0;i 0)
                    writeRes(res);
            }
        }


        for(int i=0;i

你可能感兴趣的:(岛屿问题)