Number of Islands

来源:互联网 发布:java 接口变量 编辑:程序博客网 时间:2024/04/30 15:45
public class Solution {    public int numIslands(char[][] grid) {        int num = 0;        if (grid == null || grid.length == 0 || grid[0].length == 0) {            return num;        }        for (int i = 0; i < grid.length; i++) {            for (int j = 0; j < grid[0].length; j++) {                if (grid[i][j] == '1') {                    num++;                    helper(grid, i, j);                }            }        }        return num;    }        private void helper(char[][] grid, int i, int j) {        grid[i][j] = 0;        if (i - 1 >= 0 && grid[i - 1][j] == '1') {            helper(grid, i - 1, j);        }        if (j + 1 < grid[0].length && grid[i][j + 1] == '1') {            helper(grid, i, j + 1);        }        if (i + 1 < grid.length && grid[i + 1][j] == '1') {            helper(grid, i + 1, j);        }        if (j - 1 >= 0 && grid[i][j - 1] == '1') {            helper(grid, i, j - 1);        }    }}

0 0