LeetCode- 岛屿数量(bfs)

广度优先搜索模板题:

给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。

示例 1:

输入:
11110
11010
11000
00000

输出: 1

示例 2:

输入:
11000
11000
00100
00011

输出: 3

class Solution {
private:
        int count=0;
        int dx[4]={0,1,0,-1};
        int dy[4]={1,0,-1,0};
        queue q;
        int x,y,xx,yy;
public:
    int numIslands(vector>& grid) {
        int row=grid.size();
        int col=row>0?grid[0].size():0;  //当row大于0时,grid[0]才有值,否则会出错;
        if(row==0||col==0) return 0;
        for(int i=0;i=row||yy<0||yy>=col)
                                  continue;
                                if(grid[xx][yy]=='1')
                                {
                                    q.push(xx);
                                    q.push(yy);
                                    grid[xx][yy]='0';
                                }
                            }
                        }
                    }
                }
            
        return count;
    }

};

 

你可能感兴趣的:(bfs,bfs,LeetCode,队列)