受欢迎的网站建设案例聚成网站建设
2026/3/28 19:15:22 网站建设 项目流程
受欢迎的网站建设案例,聚成网站建设,手机自己制作表白网站,cms系统搭建一、题目描述二、算法原理思路#xff1a;使用多源 BFS 算法 1#xff09;先创建一个二维数组来统计距离#xff0c;再标记陆地的距离为 0#xff0c;此时把陆地的坐标入队列2#xff09;使用 BFS 算法统计陆地到上下左右的海洋的距离#xff1a;3#xff09;此时当队列…一、题目描述二、算法原理思路使用多源 BFS 算法1先创建一个二维数组来统计距离再标记陆地的距离为 0此时把陆地的坐标入队列2使用 BFS 算法统计陆地到上下左右的海洋的距离3此时当队列为空时此时当前坐标的值就是陆地到海洋的最大距离三、代码实现class Solution { int dx[4] {0,0,-1,1}; int dy[4] {1,-1,0,0}; typedef pairint,int PII; public: int maxDistance(vectorvectorint grid) { //使用多源 BFS int n grid.size(),m grid[0].size(); vectorvectorint vis(n,vectorint(m,-1));//统计陆地到海洋的距离 queuePII que; for(int i 0; i n; i)//标记陆地的距离为0 { for(int j 0; j m; j) { if(grid[i][j] 1) { vis[i][j] 0; que.push({i,j});//让陆地的坐标入队列 } } } while(que.size())//BFS { auto [x,y] que.front(); que.pop(); for(int i 0; i 4; i) { int a x dx[i]; int b y dy[i]; if(a 0 b 0 a n b m vis[a][b] -1 grid[a][b] 0) { vis[a][b] vis[x][y] 1; que.push({a,b}); } } if(que.empty() vis[x][y]) return vis[x][y];//陆地到海洋的最大距离 } return -1; } };

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询