题目:
二维矩阵 grid
由 0
(土地)和 1
(水)组成。岛是由最大的4个方向连通的 0
组成的群,封闭岛是一个 完全
由1包围(左、上、右、下)的岛。
思路:封闭岛屿是由1完全包围的岛,也就是说,该岛屿不能在二维矩阵的边界处,这种情况排出后,统计剩余的封闭岛屿即可
广度优先遍历
代码如下:
class Solution {
int[][] a = {
{1,0},{-1,0},{0,1},{0,-1}};
public int closedIsland(int[][] grid) {
int nx = grid.length;
int ny = grid[0].length;
int num = 0;//用于记录封闭岛屿的数量
for (int r = 0; r < nx ; r++) {
for (int c = 0; c < ny; c++) {//依次对每个位置进行遍历
if(grid[r][c] == 0) {
grid[r][c] = 1;
Queue<int[]> que = new ArrayDeque<int[]>();
que.add(new int[] {r,c});
boolean fal = true;/