[LeetCode] 1162. 地图分析
题目描述:
你现在手里有一份大小为 n x n 的 网格 grid,上面的每个 单元格 都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地。
请你找出一个海洋单元格,这个海洋单元格到离它最近的陆地单元格的距离是最大的,并返回该距离。如果网格上只有陆地或者海洋,请返回 -1。
我们这里说的距离是「曼哈顿距离」( Manhattan Distance):(x0, y0) 和 (x1, y1) 这两个单元格之间的距离是 |x0 - x1| + |y0 - y1| 。
示例 1:

输入:grid = [[1,0,1],[0,0,0],[1,0,1]] 输出:2 解释: 海洋单元格 (1, 1) 和所有陆地单元格之间的距离都达到最大,最大距离为 2。
示例 2:

输入:grid = [[1,0,0],[0,0,0],[0,0,0]] 输出:4 解释: 海洋单元格 (2, 2) 和所有陆地单元格之间的距离都达到最大,最大距离为 4。
提示:
n == grid.lengthn == grid[i].length1 <= n <= 100grid[i][j]不是0就是1
题目链接:
. - 力扣(LeetCode)
解题主要思路:
其实这道题跟 "01矩阵" 几乎没差别,就是多源bfs,唯一的区别就是在外扩的时候顺便找到距离最大值,会 "01矩阵" 就会这道题,建议可以先去做一下 "01矩阵",我认为是多源bfs的最佳基础题。
01矩阵链接:
[LeetCode] 542. 01矩阵-CSDN博客
解题代码:;
class Solution {
public:int dx[4]{0, 0, 1, -1};int dy[4]{1, -1, 0, 0};int maxDistance(vector<vector<int>>& grid) {int m = grid.size(), n = grid[0].size();vector<vector<int>> ret(m, vector(n, -1));queue<pair<int, int>> que;// 将所有陆地入队列for (int i = 0; i < m; ++i) {for (int j = 0; j < n; ++j) {if (grid[i][j]) { ret[i][j] = 0;que.push(make_pair(i, j));}}}int max_dis = -1;// 一层一层往外扩while (que.size()) {auto [a, b] = que.front();que.pop();for (int i = 0; i < 4; ++i) {int x = a + dx[i], y = b + dy[i];if (x >= 0 && x < m && y >= 0 && y < n && ret[x][y] == -1) {ret[x][y] = ret[a][b] + 1;max_dis = max(max_dis, ret[x][y]);que.push(make_pair(x, y));}}}return max_dis;}
};
相关文章:
[LeetCode] 1162. 地图分析
题目描述: 你现在手里有一份大小为 n x n 的 网格 grid,上面的每个 单元格 都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地。 请你找出一个海洋单元格,这个海洋单元格到离它最近的陆地单元格的距离是最大的,并返…...
CentOS 上安装 MySQL(附卸载教程)
在 CentOS 上安装 MySQL 5.7: 1. 添加 MySQL Yum 存储库 首先,确保你已添加 MySQL Yum 存储库。因为你已经安装了 mysql57-community-release-el7-11.noarch,如果需要重新添加,可以使用以下命令: sudo yum localins…...
如何在Matlab界面中添加日期选择器?
在Matlab界面中添加日期选择器,可以让用户通过图形界面方便地选择日期。Matlab提供了uidatepicker函数,允许用户在App Designer设计的GUI中添加日期选择器组件。以下是如何在Matlab界面中添加日期选择器的详细步骤: 1. 使用App Designer添加…...
保险系统的部分模式01
Wolfgang Keller 著,liwenhua 译 摘要 对于许多保险公司来说,要建立一个能够缩短产品周期,柔性灵活的保险系统可谓是一个挑战。虽然这个系统有着巨大的市场,围绕这些相同的问题开展了许多项目,但是这些项目似乎仍然有…...
用你的手机/电脑运行文生图方案
随着ChatGPT和Stable Diffusion的发布,最近一两年,生成式AI已经火爆全球,已然成为移动互联网后一个重要的“风口”。就图片/视频生成领域来说,Stable Diffusion模型发挥着极其重要的作用。由于Stable Diffusion模型参数量是10亿参…...
L1正则化详解
目录 L1 正则化优缺点:适合使用L1正则化的情况:不适合使用L1正则化的情况:参考 L1 正则化 L1正则化是一种常用的正则化技术,也被称为Lasso正则化(Least Absolute Shrinkage and Selection Operator)。它通…...
C语言在数据库开发中的应用及其代码实践
数据库作为现代软件开发中不可或缺的一部分,其开发和维护工作至关重要。C语言,以其接近硬件的特性和高效率,被广泛应用于数据库系统的核心组件开发中。本文将探讨C语言在数据库开发中的应用,并提供实际的代码示例。 C语言在数据库…...
java maven
参考链接 maven相关配置 maven依赖管理 依赖具有传递性。 maven依赖范围 maven的生命周期 分为三个相互独立的生命周期: 在执行对应生命周期的操作时,需要进行前面的操作。比如,执行打包install的时候,会执行test。...
Java爬虫:获取直播带货数据的实战指南
在当今数字化时代,直播带货已成为电商领域的新热点,通过直播平台展示商品并进行销售,有效促进了产品的曝光和销售量的提升。然而,如何在直播带货过程中进行数据分析和评估效果,成为了摆在商家面前的一个重要问题。本文…...
python 列表、元组、字典易误区
一、删除元素 1、删除列表中的元素 pop del (1)pop(索引) 用于删除指定索引处的元素,并返回被删除的元素的值。默认删除最后一个元素。 eg:list.pop() (2)del 用于删除列表中的指定索引处的元素,或者删除整个列表变量。del操作没有返回值。 eg:del a[1:…...
wireshark或tshark提取tcpdump捕获的数据包(附python脚本自动解析文件后缀)
tcpdump 捕获数据包后,保存的文件通常会被命名为 capture.pcap(或其他你指定的名称),并存储在你运行命令的当前目录中。以下是如何使用 tcpdump 进行流量捕获,并找到和使用捕获文件的详细步骤。 1. 使用 tcpdump 捕获…...
了解EasyNVR及EasyNVS,EasyNVR连接EasyNVS显示授权超时如何解决?什么原因?
我们先来了解NVR批量管理软件/平台EasyNVR,它深耕市场多年,为用户提供多种协议,兼容多种厂商设备,包括但不限于支持海康,大华,宇视,萤石,天地伟业,华为设备。 NVR录像机…...
【AUTOSAR标准文档】服务类型介绍
Introduction to types of services The Basic Software can be subdivided into the following types of services: ① Input/Output (I/O) Standardized access to sensors, actuators and ECU onboard peripherals ② Memory Standardized access to internal/external…...
Axure垂直菜单展开与折叠
亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:Axure垂直菜单展开与折叠 主要内容:垂直菜单单击实现展开/折叠,点击各菜单项显示选中效果 应用场景:后台菜单设…...
java简单理解哈希算法
这里需要大家有一些哈希表(散列表的理论基础) 比如冲突怎么处理 key-value是什么意思 有哪些处理冲突的方法 平均查找成功长度和失败长度是什么意思。 详细可以看一下这个数据结构散列表。在java中常用三种结构代表散列: map,set,数组。应在不…...
Python生成随机密码脚本
引言 在数字化时代,密码已成为我们保护个人信息和数据安全的重要手段。然而,手动创建复杂且难以猜测的密码是一项既繁琐又容易出错的任务。幸运的是,Python编程语言为我们提供了一种高效且灵活的方法来自动生成随机密码。本文将详细介绍如何…...
什么是ASC广告?Facebook ASC广告使用技巧
ASC广告全称AdvantageShopping Campaign,即进阶赋能型智能购物广告,许多投放Facebook广告的小伙伴听过这个词,但每用过这个功能,Facebook推出ASC广告已经有两年了,不少实例证明ASC广告在降低转化成本上有一定效果&…...
idea2024启动Java项目报Error running CloudPlApplication. Command line is too long.
idea2024启动Java项目报Error running CloudPlApplication. Command line is too long. 解决方案: 1、打开Edit Configurations 2、点击Modify options设置,勾选Shorten command line 3、在Edit Configurations界面下方新增的Shorten command line选项中…...
xtu oj 不定方程的正整数解
文章目录 回顾思路c 语言代码 回顾 AB III问题 H: 三角数问题 G: 3个数等式 数组下标查询,降低时间复杂度1405 问题 E: 世界杯xtu 数码串xtu oj 神经网络xtu oj 1167 逆序数(大数据)xtu oj 原根 思路 首先直观地理解这个题目的意思&#x…...
python爬虫技术实现酷我付费破解下载
python爬虫技术实现酷我付费破解下载 1.python编程环境 python解释器:pyhton3版本 代码编辑器:Vscode,PyCharm 2.实现爬虫程序过程 2.1浏览器访问网站的过程 在浏览器导航栏中输入域名并回车(在按下回车的那一瞬间浏览器向网站发送了一个http请求)当网站接收到请求后向…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
