描述:
给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。
岛屿: 相邻陆地可以组成一个岛屿(相邻:上下左右) 判断岛屿个数。
示例1
输入:
[[1,1,0,0,0],[0,1,0,1,1],[0,0,0,1,1],[0,0,0,0,0],[0,0,1,1,1]]
返回值:
3
(题目来自牛客网)
用C++实现如下
class Solution {
public:
/**
* 判断岛屿数量
* @param grid char字符型vector<vector<>>
* @return int整型
*/
int solve(vector<vector<char> >& grid) {
// write code here
int count = 0;
for(int i=0; i<grid.size(); ++i) //负责行遍历
{
for(int j=0; j<grid[0].size(); ++j) //负责一行的每一列的遍历
{
if(grid[i][j]=='1') //碰到是1的,岛屿数量加1,然后处理一下
{
isIland(grid, i, j); //处理岛屿的函数
++count; //数量++
}
}
}
return count;
}
//处理岛屿的函数,如果当