题解 | #岛屿数量#
岛屿数量
http://www.nowcoder.com/practice/0c9664d1554e466aa107d899418e814e
1、DFS
- flood fill解决
import java.util.*; public class Solution { /** * 判断岛屿数量 * @param grid char字符型二维数组 * @return int整型 */ private char[][] grid; private int m; private int n; public int solve (char[][] grid) { // write code here if (grid == null || grid.length == 0 || grid[0].length == 0) { return 0; } this.grid = grid; this.n = grid.length; this.m = grid[0].length; int count = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (grid[i][j] == '1') { count++; dfs(i, j); } } } return count; } private void dfs(int i, int j) { if (i < 0 || i >= n || j < 0 || j >= m || grid[i][j] == '0') return; grid[i][j] = '0'; dfs(i + 1, j); dfs(i - 1, j); dfs(i, j + 1); dfs(i, j - 1); } }