leetcode1162. 地图分析(bfs)
你现在手里有一份大小为 N x N 的「地图」(网格) grid,上面的每个「区域」(单元格)都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地,请你找出一个海洋区域,这个海洋区域到离它最近的陆地区域的距离是最大的。
我们这里说的距离是「曼哈顿距离」( Manhattan Distance):(x0, y0) 和 (x1, y1) 这两个区域之间的距离是 |x0 - x1| + |y0 - y1| 。
如果我们的地图上只有陆地或者海洋,请返回 -1。
输入:[[1,0,1],[0,0,0],[1,0,1]]
输出:2
解释:
海洋区域 (1, 1) 和所有陆地区域之间的距离都达到最大,最大距离为 2。
代码
class Solution {public int maxDistance(int[][] grid) {Queue<int[]> queue=new LinkedList<>();int[][] dir=new int[][]{{-1,0},{1,0},{0,1},{0,-1}};for(int i=0;i<grid.length;i++)for(int j=0;j<grid[0].length;j++)if(grid[i][j]==1){queue.offer(new int[]{i,j});} if(queue.size()==0||queue.size()==grid[0].length*grid.length) return -1;//全为陆地或海洋int res=0;while (!queue.isEmpty())//bfs{int size=queue.size();for(int i=0;i<size;i++)//按层扩散进去{int[] e=queue.poll();int ex=e[0],ey=e[1];for(int[] d:dir){int nextX=ex+d[0],nextY=ey+d[1];if(nextX<0||nextX>=grid.length||nextY<0||nextY>=grid[0].length||grid[nextX][nextY]==1)continue;grid[nextX][nextY]=1;//访问过的标记为陆地queue.offer(new int[]{nextX,nextY});}}res++;//记录需要扩散的层数}return res-1;}
}
leetcode1162. 地图分析(bfs)相关推荐
- 1162. 地图分析 BFS Dijkstra算法
你现在手里有一份大小为 N x N 的 网格 grid,上面的每个 单元格 都用 0 和 1 标记好了.其中 0 代表海洋,1 代表陆地,请你找出一个海洋单元格,这个海洋单元格到离它最近的陆地单元格的 ...
- Leetcode0542. 01 矩阵(medium,BFS)
目录 1. 题目描述 2. 解题分析 3. 代码实现 1. 题目描述 给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距 ...
- Leetcode每日一题总目录(动态更新。。。)
0. 概要 leecode每日一题(也可能多题)题解跟踪记录及总目录. 常用算法解题思路和技巧及数据结构: 预处理:数组排序(954),哈希表... 双指针法 682,125,905 单向链表 2 双 ...
- LeetCode 1162. 地图分析(BFS)
1. 题目 你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 和 1 标记好了.其中 0 代表海洋,1 代表陆地,你知道距离陆地区域最远的海洋区域 ...
- leetcode:1162. 地图分析
题目来源 leetcode:1162. 地图分析 题目描述 题目解析 题目分析 本题要求:求所有海洋点到离它最近的陆地点的距离的最大值. 问题:什么是距离?这里是曼哈顿距离,就是只能沿着横.竖到达另外 ...
- 多源BFS 理解学习+代码模板---跟龙之介学算法
单源BFS是广搜,基于队列的思想,找到初始结点入队,然后把邻接点入队,直到搜索完. 而多源BFS就是,可以多个源点入队,然后每次都将当前入队的所有结点的邻边入队.这次我们核心围绕多源BFS分几种体型来 ...
- LeetCode - 1162 地图分析
题目来源 1162. 地图分析 - 力扣(LeetCode) 题目描述 你现在手里有一份大小为 n x n 的 网格 grid,上面的每个 单元格 都用 0 和 1 标记好了.其中 0 代表海洋,1 ...
- python扫雷 广度优先_基于邻接矩阵的广度优先搜索遍历(BFS)
数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历 Time Limit: 1000MS Memory limit: 65536K 题目描述 给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索( ...
- LeetCode:1162. 地图分析+模板链接
题目 LeetCode:1162. 地图分析 你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 和 1 标记好了.其中 0 代表海洋,1 代表陆地 ...
最新文章
- yum安装nginx
- Oracle 删除归档日志脚本
- python修改静态html_Python 静态页面爬虫---urllib3库实现
- @Aspect中@Pointcut 12种用法
- MySQL 错误 1366:1366 Incorrect integer value
- PHP7 网络编程(四)signal信号【待】
- 腾讯竟然是这样存储你的数据的!!!
- 自旋锁原理及java自旋锁
- 电教室软件 linux,在深度操作系统上安装多媒体电子教室Veyon
- mathorcup数据大赛
- 微信小程序之轮播图(附带图片)
- python:制作水印图片
- 【下一步计划】毕业后
- 无法安装X64 在计算机找到X32,怎么看电脑适合装32位还是64位
- S7-300/400 PLC 模拟量输入/输出的量程转换
- 【迅为iMX6Q】开发板:uboot-imx编译
- 2022年 新华三杯决赛题目
- JavaScript实现圆周运动
- 评价股票博客好坏的指标(第11期)
- The 37th ACM/ICPC Asia Regional HangZhou Site Online Contest - F
热门文章
- 【C++ Primer | 09】容器适配器
- WinPcap笔记(2):获取设备列表
- 列表生成式,生成器表达式,模块的使用
- Asp.net MVC模型数据验证扩展ValidationAttribute
- 浏览器兼容CSS渐进增强 VS 优雅降级如何选择
- 最感叹的莫过于一见如故,最悲伤的莫过于再见陌路。最深的孤独,是你明知道自己的渴望,却得对它装聋作哑。最美的你不是生如夏花,而是在时间的长河里,波澜不惊。...
- java枚举的简单介绍
- sp_decrypt
- Visual Basic.NET中访问数据的方法(zz)
- jenkins的JAVA简单顺序配置git仓库