news 2026/4/18 10:40:40

【剑斩OFFER】算法的暴力美学——力扣 1162 题:地图分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【剑斩OFFER】算法的暴力美学——力扣 1162 题:地图分析

一、题目描述

二、算法原理

思路:使用多源 BFS 算法

1)先创建一个二维数组来统计距离,再标记陆地的距离为 0,此时把陆地的坐标入队列

2)使用 BFS 算法统计陆地到上下左右的海洋的距离:

3)此时当队列为空时,此时当前坐标的值就是陆地到海洋的最大距离;

三、代码实现

class Solution { int dx[4] = {0,0,-1,1}; int dy[4] = {1,-1,0,0}; typedef pair<int,int> PII; public: int maxDistance(vector<vector<int>>& grid) { //使用多源 BFS int n = grid.size(),m = grid[0].size(); vector<vector<int>> vis(n,vector<int>(m,-1));//统计陆地到海洋的距离 queue<PII> 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; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 5:12:13

【课程设计/毕业设计】基于springboot的后勤部门办公用品管理系统小程序的设计与实现【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/17 17:19:34

计算机Java毕设实战-基于springboot+微信小程序的办公用品采购申领管理系统小程序的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/18 8:03:14

postman怎么获取上一个接口执行完后的参数

在Postman中获取上一个接口执行完后的参数&#xff0c;主要有以下几种方法&#xff1a; 1. 使用环境变量&#xff08;Environment Variables&#xff09; 这是最常用的方法&#xff1a; 设置变量&#xff08;在第一个接口的Tests中&#xff09;&#xff1a; // 解析响应 co…

作者头像 李华
网站建设 2026/3/15 12:43:32

科技守护温情,智慧康养让陪伴跨越距离

在快节奏的现代生活中&#xff0c;无数子女奔赴远方追逐理想&#xff0c;却始终有一份沉甸甸的牵挂系于家中长辈身上。独居时的突发意外、日常的健康疏忽、独处时的孤单寂寥&#xff0c;成为无数家庭共同的心病。幸运的是&#xff0c;我发现了一款京能天云数据打造的智慧康养服…

作者头像 李华
网站建设 2026/4/18 8:33:24

clonos web界面使用cbsd创建一个bhyve ubuntu server虚拟机(未成功)

已经安装好了clonos web界面软件&#xff1a;https://skywalk.blog.csdn.net/article/details/157354348 创建jail虚拟机很方便。 尝试创建bhyve ubuntu 虚拟机。 先上传iso 但是传上去的没有看到啊&#xff01; 创建虚拟机 创建bhyve虚拟主机&#xff0c;选我们上传的光盘…

作者头像 李华
网站建设 2026/4/18 7:42:21

IPD课程系列-产品平台和CCB

一、课程简介如果您的企业面临以下问题&#xff0c;则需要考虑参加本课程&#xff1a;1.如何实现基于产品平台去开发产品&#xff1f;2.如何规划产品平台&#xff1f;3.如何进行技术规划&#xff1f;4.如何进行CBB&#xff08;公共共享模块&#xff09;设计&#xff1f;5.如何保…

作者头像 李华