9.1唐伯虎心糖:那一抹甜蜜,穿越时空的惊鸿一瞥

核心内容摘要

17c.com网站永久域名查询:解锁数字世界的永恒入口
17岁,一场关于“大社会”的奇遇

唐人社十次大导航:内容分享与深度反思,一场关于连接与成长的探索之旅

题目描述

算法原理思路使用多源 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,-

);//统计陆地到海洋的距离 queuePII que; for(int i 0; i n; i)//标记陆地的距离为0 { for(int j 0; j m; j) { if(grid[i][j]

{ 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]

{ vis[a][b] vis[x][y] 1; que.push({a,b}); } } if(que.empty() vis[x][y]) return vis[x][y];//陆地到海洋的最大距离 } return -1; } };

npxvip-npxvip最新版v.29.40.47-2265安卓网应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123