1、本题题目

2、本题代码




3、关键思路
// 第一步:记录map映射,key:岛屿编号,value:岛屿面积
// 第二步:用set集合,每把一个0处理成1,就把这个1周围的不同岛屿面积加起来
(set标记已加入的岛屿)
4、注意事项
// 如果有用到map映射和set集合,要记得引入头文件(否则会一直编译错误)

// 注意要考虑全是陆地的情况

// 注意C++里面set集合的使用场景和使用方式
// 判断这个岛屿的面积有没有加入过计算
// 判断一个东西有没有进来过
// 可以用set集合
// 具体判断实际有没有进来过的方法是.count()
// 如果有进来过,set里的计数count会加1,所以如果set里的一个东西的计数count不是0,说明已经来过了,直接contonue去下一次循环
// 如果没有进来过,用set的插入函数.insert()

// 要搞清楚这个函数你是要拿来干嘛的
// void DFS()这个函数我们是要拿来把同一个岛屿变成统一的编号的(并记录这个编号的岛屿的面积)
// 所以这个函数的参数有int mark
// (而不是其他东西)

// 注意同一个生命周期里不能出现相同的变量名

// 注意不要打字打得太快就飞起来了,现在在干什么要搞清楚
// 比如边界处理那里,要搞清楚我们现在在让他不要超出边界(第一次打的代码居然有nearj <= grid0.size()这种东西)
// 注意细节
// 很多细节一起出错的时候,找都找不到
