#include <iostream>
#include <vector>
#include <queue>
using namespace std;
//深度优先搜索 官方解决方案
//class Solution {
//private:
// void dfs(vector<vector<char>>& grid, int r, int c)
//{
// int nr = grid.size();
// int nc = grid[0].size();
//
// grid[r][c] = '0';
// if (r - 1 >= 0 && grid[r-1][c] == '1') dfs(grid, r - 1, c);
// if (r + 1 < nr && grid[r+1][c] == '1') dfs(grid, r + 1, c);
// if (c - 1 >= 0 && grid[r][c-1] == '1') dfs(grid, r, c - 1);
// if (c + 1 < nc && grid[r][c+1] == '1') dfs(grid, r, c + 1);
// }
//
//public:
// int numIslands(vector<vector<char>>& grid) {
// int nr = grid.size();grid的大小
// if (!nr) return 0;//判断是否为空
// int nc = grid[0].size();一行有多大
// int num_islands = 0;
// for (int r = 0; r < nr; ++r) { r是行数
// for (int c = 0; c < nc; ++c) {
// if (grid[r][c] == '1') {
// ++num_islands;
// dfs(grid, r, c);
// }
// }
// }
//
// return num_islands;
// }
//};
2、
//自己写的
//class Solution {
//public:
// Solution(vector<vector<int>>&arr)
// {
// vector<vector<int>>grid(5,vector<int>(5));
// for(int i=0;i<5;i++)//vector对于二维数组不能直接初始化,
// {
// for(int j=0;j<5;j++)
// {
// grid[i][j]=arr[i][j];
// }
// }
// }
// int numIslands(vector<vector<int>>& grid)
// {
// int size=grid.size();//有多少分组
//