【重点】【BFS】542.01矩阵

题目

法1:经典BFS

在这里插入图片描述
下图中就展示了我们方法:
在这里插入图片描述

class Solution {public int[][] updateMatrix(int[][] mat) {int m = mat.length, n = mat[0].length;int[][] dist = new int[m][n];boolean[][] used = new boolean[m][n];Queue<int[]> queue = new LinkedList<>();for (int i = 0; i < m; ++i) {for (int j = 0; j < n; ++j) {if (mat[i][j] == 0) {queue.offer(new int[]{i, j});used[i][j] = true;}}}int[] xMove = new int[]{-1, 1, 0, 0};int[] yMove = new int[]{0, 0, -1, 1};while (!queue.isEmpty()) {int[] curLoc = queue.poll();int curX = curLoc[0], curY = curLoc[1];for (int i = 0; i < 4; ++i) {int xNew = curX + xMove[i];int yNew = curY + yMove[i];if (xNew >= 0 && xNew < m && yNew >= 0 && yNew < n && !used[xNew][yNew]) {queue.offer(new int[]{xNew, yNew});dist[xNew][yNew] = dist[curX][curY] + 1;used[xNew][yNew] = true;}}}return dist;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/597426.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 3 集成 Thymeleaf

在现代的Web开发中&#xff0c;构建灵活、动态的用户界面是至关重要的。Spring Boot和Thymeleaf的结合为开发者提供了一种简单而强大的方式来创建动态的Web应用。本文将介绍如何在Spring Boot项目中集成Thymeleaf&#xff0c;并展示一些基本的使用方法。 什么是Thymeleaf&#…

未来已来,Ai原生应用与人高度结合!学习就在现在?

原生应用&#xff1a;OpenAI™ChatGPT、Baidu.Inc™文心一言 也可以体验CSDN的INSCODE AI&#xff0c;集成多个国内GPT内容。 文章目录 前言----编程语言的未来&#xff1f;一、编程语言的教育1.1 学校所见所闻1.2 开启我们的Ai行程~io&#xff01;1.3 Ai结果评论 二、Ai编程教…

Linux环境vscode clang-format格式化:vscode clang format command is not available

问题现象 vscode安装了clang-format插件&#xff0c;但是使用就报错 问题原因 设置中配置的clang-format插件工具路径不正确。 解决方案 确认本地安装了clang-format工具&#xff1a;终端输入clang-format&#xff08;也可能是clang-format-13等版本&#xff0c;建议tab自…

[NISACTF 2022]popchains

[NISACTF 2022]popchains wp 题目代码&#xff1a; Happy New Year~ MAKE A WISH <?phpecho Happy New Year~ MAKE A WISH<br>;if(isset($_GET[wish])){unserialize($_GET[wish]); } else{$anew Road_is_Long;highlight_file(__FILE__); } /**********************…

AI实景无人直播创业项目:开启自动直播新时代,一部手机即可实现增长

在当今社会&#xff0c;直播已经成为了人们日常生活中不可或缺的一部分。无论是商家推广产品、明星互动粉丝还是普通人分享生活&#xff0c;直播已经渗透到了各行各业。然而&#xff0c;传统直播方式存在着一些不足之处&#xff0c;如需现场主持人操作、高昂的费用等。近年来&a…

Android Studio 报错Failed to find Build Tools revision 28.0.3

目录 前言 一、报错信息 二、报错原因 三、解决方案 四、更多资源 前言 当Android Studio报错提示"Failed to find Build Tools revision 28.0.3"时&#xff0c;通常意味着您的项目需要使用28.0.3版本的构建工具&#xff0c;但系统中并没有找到对应的版本。这可…

西电期末1020.寻找同数

一.题目 二.分析与思路 其实就是寻找字串的个数&#xff0c;以前好像是有类似的题&#xff0c;先找到子串的首字符&#xff0c;再判断 三.代码实现 #include<bits/stdc.h>//万能头 bool f(char* s,char* sub,int i,int l){for(int j0;j<l;j){if(s[ji]!sub[j])retu…

计算机组成原理复习

一、计算机系统概论 计算机由硬件和软件两大部分组成 软件分系统软件和应用软件翻译程序有两种&#xff1a;编译程序和解释程序冯诺依曼计算机的特点&#xff1a; 计算机由运算器、存储器、控制器、输入设备和输出设备五大部分组成。指令和数据以同等地位存放于存储器内&#…

如何成为ChatGPT 优质Prompt创作者

如何提问&#xff1f; 我想让你成为我的Prompt创作者。你的目标是帮助我创作最佳的Prompt&#xff0c;这个Prompt将由你ChatGPT使用。你将遵循 以下过程&#xff1a;1.首先&#xff0c;你会问我Prompt是关于什么&#xff1f;我会告诉你&#xff0c;但我们需要 通过不断的重复来…

brew 安装使用 mysql、redis、mongodb

在 Mac 生态中 brew 真是个万能神器&#xff0c;今天就来介绍一下怎么使用 brew 安装 mysql、redis、mongodb&#xff0c;以及如何使用 brew 启动、关闭、重启这些服务。 前言 brew 常用命令 # 查看brew的版本 brew -v# 更新homebrew自己&#xff0c;把所有的Formula目录更新…

索引类型-哈希索引

一. 前言 前面我们简单介绍了数据库的B-Tree索引&#xff0c;下面我们介绍另一种索引类型-哈希索引。 二. 哈希索引的简介 哈希索引(hash index) 基于哈希表实现&#xff0c;只有精确匹配索引所有列的查询才有效。对于每一行数据&#xff0c;存储引擎都会对所有索引列计算一个…

华为 1+X《网络系统建设与运维(初级)》 认证实验上机模拟试题

华为 1X《网络系统建设与运维&#xff08;初级&#xff09;》认证实验上机模拟试题 一、考试背景二、考试说明2.1考试分数说明2.2考试要求2.3考试环境介绍2.4启动考试环境2.5保存答案 三、考试正文3.1考试内容3.1.1任务 1&#xff1a;设备连接3.1.2任务 2&#xff1a;设备命名3…

Centos7静态网络配置

在vmware中打开&#xff0c; 点击虚拟网络编辑器&#xff0c;修改以下配置 网关IP最后一位固定为2&#xff0c;这个160根据下图中vmnet8的ip地址来的 打开网络控制面板>打开vmnet8查看 接着打开linux&#xff0c;有桌面版的使用桌面版更加方便 箭头这么乱&#xff0c;但是你…

【数据结构】二叉树(二)——顺序结构

前言 本篇博客讲解数组实现二叉树的顺序结构 文章目录 一、二叉树的顺序结构及实现1.1 二叉树的顺序结构1.2 堆的概念1.3 堆的实现1.3.1 初始化堆1.3.2 向堆中插入元素1.3.3 从堆顶删除1.3.4 其他操作1.3.5 完整代码Heap.hHeap.c 1.4 堆的应用1.4.1 堆排序1.4.2 TOP-K问题 一、…

web服务器nginx和Apache有什么区别?

随着互联网的快速发展&#xff0c;Web服务器在互联网应用中扮演着越来越重要的角色。其中&#xff0c;Nginx和Apache是两种广泛使用的Web服务器软件。尽管它们都可以实现Web服务器的功能&#xff0c;但Nginx和Apache在许多方面存在一些重要的区别。本文将探讨Nginx和Apache之间…

大数据技术在民生资金专项审计中的应用

一、应用背景 目前&#xff0c;针对审计行业&#xff0c;关于大数据技术的相关研究与应用一般包括大数据智能采集数据技术、大数据智能分析技术、大数据可视化分析技术以及大数据多数据源综合分析技术。其中&#xff0c;大数据智能采集数据技术是通过网络爬虫或者WebService接…

Docker无法启动Postgresql容器

目录 问题描述解决问题 问题描述 拉取了一个Postgresql14.2的镜像&#xff0c;在docker run创建并运行容器之后使用docker ps发现容器没有跑起来&#xff0c;再次使用docker start也没跑起来。 docker run -d --name mypg -v psql-data:/var/lib/postgresql/data -e POSTGRES…

Python random模块(获取随机数)常用方法和使用例子

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 random.random random.random()用于生成一个0到1的随机符点数: 0 < n < 1.0 random.uniform random.uniform(a, b)&#xff0c;用于生成一个指定范围内的随机符点数&#xff0c;两个参数其中一个是上限&#xff0c;一…

2023-我的CSDN创作之旅

1.博客内容与数量 2023年共发表博客59篇&#xff0c;内容主要集中在GIS&#xff0c;空间分析等领域 主要内容有&#xff1a; networkx学习 Geospatial Data Science Geocomputation ESDA in PySal SHAP Spatial Data Analysis BikeDNA 以下是对这几个章节主要内容的简…

html+css 对input的使用以及详解

表单 form标签主要用于收集用户信息&#xff0c;对表单结果的处理和发送 使用场景&#xff1a;登录页面、注册页面、搜索区域 form属性描述action规定当提交表单时向何处发送表单数据method规定用于发送表单数据的 HTTP 方法name规定表单的名称target规定在何处打开 action …