代码随想录训练营Day 66|卡码网101.孤岛的总面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿
1.孤岛的总面积
101. 孤岛的总面积 | 代码随想录
(图片来源网络,侵删)
代码:(bfs广搜)
#include
#include
#include
using namespace std;
int dir[4][2] = {1,0,0,1,-1,0,0,-1};
int count;
void bfs(vector&grid,int x,int y){
queue que;
que.push({x,y});
grid[x][y] = 0; // 这里用grid的元素变为0来进行标记
count++;
while(!que.empty()){
pair cur = que.front();
que.pop();
int curx = cur.first;
int cury = cur.second;
for(int i = 0; i = grid.size()||nexty = grid[0].size()){
continue;
}
if(grid[nextx][nexty] == 1){
que.push({nextx,nexty});
grid[nextx][nexty] = 0;
count++;
}
}
}
}
int main(){
// 输入
int n,m;
cin >> n >> m;
vector grid(n,vector(m,0));
for(int i = 0; i > grid[i][j];
}
}
// 处理
for(int i = 0; i > n >> m;
vector grid(n,vector(m,0));
for(int i = 0; i > grid[i][j];
}
}
// 处理
for(int i = 0; i > n >> m;
vector grid(n,vector(m,0));
for(int i = 0; i > grid[i][j];
}
}
// 处理
// 将临近陆地的标为2 和 孤岛区分开
vector visited(n,vector(m,false));
for(int i = 0; i n >> m;
vector grid(n,vector(m,0));
for(int i = 0; i > grid[i][j];
}
}
// 处理
vector firstBorder(n,vector(m,false));
vector secondBorder(n,vector(m,false));
for(int i = 0; i n >> m;
vector grid(n,vector(m,0));
for(int i = 0; i > grid[i][j];
}
}
// 处理
vector visited(n,vector(m,false));
unordered_map gridNum;
int mark = 2; // 记录岛屿的编号
bool isAllGrid = true; // 记录整个地图是否都是陆地(如果是,就没法添加陆地了)
for(int i = 0; i
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
