leetcode 542. 01 Matrix(01矩阵)

【CODE】01 矩阵(01 Matrix) 542. 01 矩阵 难度中等192收藏分享切换为英文关注反馈 给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例 1: 输入: 0 0 0 0 1 0 0 0 0 输出: 0 0 0 0 1 0 0 0 0 示例 2: 输入: 0 0 0 0 1 0 1 1 1 输出: 0 0 0 0 1 0 1 2 ... 阅读详情

在这里插入图片描述
在这里插入图片描述

矩阵中只有0,1值,返回每个cell到最近的0的距离。

思路:

0元素到它自己的距离是0,
只需考虑1到最近的0是多少距离。

BFS.

先把元素1处的距离更新为无穷大。
0的位置装入queue。
从每个0出发,走上下左右4个方向,遇到0不需要处理,遇到1,距离为当前距离+1.

如果当前距离+1 比下一位置的距离小,
把下一位置的距离更新为当前距离+1,同时说明从下一位置出发的距离都需要更新,装入queue.

    public int[][] updateMatrix(int[][] mat) {
        int rows = mat.length;
        int cols = mat[0].length;

        Queue<int[]> queue = new LinkedList<>();
        int max = rows * cols;

        //初始化,0处加入queue, 1处设为最大值
        for(int r = 0; r < rows; r++) {
            for(int c = 0; c < cols; c++) {
                if(mat[r][c] == 0) queue.offer(new int[]{r,c});
                else mat[r][c] = max;
            }
        }

        int[] direc = new int[]{-1,0,1,0,-1};

        while(!queue.isEmpty()) {
            int[] cur = queue.poll();
            for(int i = 0; i < 4; i++) {
                int nextR = cur[0] + direc[i];
                int nextC = cur[1] + direc[i+1];
                if(nextR >= 0 && nextR < rows && nextC >= 0 && nextC < cols && mat[cur[0]][cur[1]]+1 < mat[nextR][nextC]){
                    mat[nextR][nextC] = mat[cur[0]][cur[1]]+1;
                    queue.offer(new int[]{nextR, nextC});
                }
            }
        }
        return mat;
    }
01矩阵及其基本运算.doc 01矩阵及其基本运算.doc 数学建模课件(姜启源版) 立即下载

相关推荐

CMAC算法原理

2、K1 通过以下运算导出:若 L 的最高有效位等于 0,则 K1 是 L 的左移 1 位。3、K2 通过如下运算导出:若 K1 的最高有效位等于 0,则 K2 是 K1 的左移 1 位。采用了 AES 算法中的类似 CBC 模式的加密方式,即对前一个分组的密文与当前分组的明文进行异或操作后在加密,2、分块处理:首先将消息分成多个固定长度的块,若消息长度不是块大小的倍数,则可以使用填充来将其填充到合适的大小。1、子密钥计算,通过主密钥生成子密钥(key1,key2),子密钥用于最后一个块处理;

sky的博客 1658

01矩阵 01 Matrix

文章目录01矩阵 01 Matrix思路Tag 01矩阵 01 Matrix 在一个由 0和1 组成的矩阵mat,输出一个大小相同的矩阵,其中每个格子是mat中对应位置元素到最近的0的距离。 两个相邻元素间的距离是1. mat = [[0,0,0],[0,1,0],[0,0,0]] out:[[0,0,0],[0,1,0],[0,0,0]] 思路 mat是一个m*n阶矩阵,要求输出相同的矩阵,矩阵的每一个元素,代表mat中对应元素距离0元素的最近距离。 使用BFS,将mat所有的0元素坐标信息全部入队。

Cui's Blog 1238

高斯泼溅(Gaussian Splatting):3D建模的颠覆性革命

高斯泼溅(Gaussian Splatting):3D建模的颠覆性革命

yingtu666的博客 5149

01 矩阵

题目背景: 幻想乡的魔法使,雾雨魔理沙,发明了一种有趣的魔法卡片。 这种魔法卡片为正方形,分成若干个大小相同的方格,每个方格上都有一种印记,印记 分为两种:”绮罗印记” 和 “幽光印记”。卡片上每一行,每一列的方格中都有两个 “绮罗印记”,其他方格为 “幽光印记”。 这种卡片的神奇之处就在于,你可以任意次数地交换任意两行的所有方格,或者交换任 意两列的所有方格...

weixin_30480651的博客 399

VUE3 实战手记(一)集成 EasyUI for Vue 组件库

本文详细介绍了如何在VUE3项目中集成EasyUI for Vue组件库,包括环境准备、基础安装、配置与集成、TypeScript类型问题解决以及组件实战等内容。EasyUI以其轻量级和开箱即用的特性,特别适合快速开发后台管理系统,提升开发效率。

weixin_30628801的博客 528

Python爬虫实战:携程旅游平台数据爬取(酒店+机票+景点),破解加密与反爬(附完整代码)

携程的反爬机制再复杂,核心逻辑都是“识别非真实用户的请求”,而爬虫的核心就是“让请求看起来像真实用户的行为”。本文的方案从登录态处理、参数加密破解、动态数据抓取,到反爬应对,都是围绕“模拟真实”展开:用Playwright模拟真实浏览器登录,用住宅代理模拟真实用户IP,用随机延迟模拟真实用户的操作频率。掌握了这个核心思路,无论平台的反爬如何升级,都能找到应对方法。当然,爬虫技术是一把双刃剑,合理使用才能发挥其价值。如果你的爬虫项目中遇到了携程的反爬问题,不妨按照本文的步骤试试,大概率能解决问题。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2604

01矩阵(c++ bfs解法)

01 矩阵 给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例 1: 输入:mat = [[0,0,0],[0,1,0],[0,0,0]] 输出:[[0,0,0],[0,1,0],[0,0,0]] 示例 2: 输入:mat = [[0,0,0],[0,1,0],[1,1,1]] 输出:[[0,0,0],[0,1,0],[1,2,1]] 提示: m == mat.length n ==

qq_45768588的博客 1580

Python FastAPI 面试题及参考答案

FastAPI 的路由机制是其核心功能之一,用于将不同的 URL 路径映射到相应的处理函数。通过定义路由,可以构建出功能丰富的 API。在 FastAPI 中,使用装饰器来定义路由。在这个示例中,是一个装饰器,它将根路径"/"的 GET 请求映射到read_root函数。当客户端发送一个 GET 请求到根路径时,FastAPI 会调用read_root函数并返回结果。

大模型大数据攻城狮的专栏 2243

01 矩阵——BFS广度优先搜索图解

01 矩阵——BFS广度优先搜索解答 给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例 1: 输入: 0 0 0 0 1 0 0 0 0 输出: 0 0 0 0 1 0 0 0 0 示例 2: 输入: 0 0 0 0 1 0 1 1 1 输出: 0 0 0 0 1 0 1 2 1 注意: 给定矩阵的元素个数不超过 10000。 ...

mirana的专栏 2217

华为OD机考双机位C卷 - 员工派遣 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 员工派遣 (OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 1032

DeiT详解:知识蒸馏的Transformer

DeiT模型(8600万参数)仅用一台 GPU 服务器在 53 hours train,20 hours finetune,仅使用 ImageNet 就达到了 84.2 top-1 准确性,而无需使用任何外部数据进行训练,性能与最先进的卷积神经网络(CNN)可以抗衡。其核心是提出了针对 ViT 的教师-学生蒸馏训练策略,并提出了方法,使得在视觉领域训练得又快又好。

走在深度学习前沿的小宋 2636

Leetcode 542:01 矩阵 01 Matrix

题目: 给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 Given a matrix consists of 0 and 1, find the distance of the nearest 0 for each cell. The distance between two adjacent cells is 1. 示例 1: 输入: 0 ...

爱写Bug 378

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Leetcode 542.01 矩阵(01 Matrix)

Leetcode 542.01 矩阵 1 题目描述(Leetcode题目链接)   给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。 输入 0 0 0 0 1 0 0 0 0 输出 0 0 0 0 1 0 0 0 0 注意: 给定矩阵的元素个数不超过 10000。 给定矩阵中至少有一个元素是 0。 矩阵中的元素只在四个方向上相邻: 上、下、...

qq_39378221的博客 339

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Leetcode 542:01 矩阵 01 Matrix

题目: 给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。Given a matrix consists of 0 an...

爱写Bug 465

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

leetcode 542 01 Matrix 01 矩阵

邹九的个人博客 189

LeetCode-542. 01 Matrix (JAVA)零一矩阵

LeetCode-542. 01 Matrix (JAVA)零一矩阵

mine_song的博客 3597

leetcode 542. 01-matrix 01 矩阵 python3

时间:2020-7-27 题目地址:https://leetcode-cn.com/problems/01-matrix/ 题目难度:Medium 题目描述: 给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例 1: 输入: 0 0 0 0 1 0 0 0 0 输出: 0 0 0 0 1 0 0 0 0 示例 2: 输入: 0 0 0 0 1 0 1 1 1 输出: 0 0 0 0 1 0 1 2 1 注意: 给定矩阵的元素个数

isabloomingtree的博客 281

LeetCode(542):01 矩阵 01 Matrix(Java)

2019.11.4 #程序员笔试必备# LeetCode 从零单刷个人笔记整理(持续更新) github:https://github.com/ChopinXBP/LeetCode-Babel 这题直接用回溯法必然会超时,矩阵问题可以考虑用动态规划的方法。 建立dp数组,dp[i][j]代表位置ij到最近的0的距离,初始值为Integer.MAX_VALUE-1。对矩阵进行两次遍历。 第一次遍历...

NJU_ChopinXBP的博客 584

【LeetCode】25. 542_01 Matrix · 01矩阵

看了答案后,背着答案写了一版,不超时了(╥﹏╥)int value;int i;int k;i < 4;

aqin1012的博客 395

【LeetCode】 542. 01 Matrix 01 矩阵(Medium)(JAVA)

【LeetCode】 542. 01 Matrix 01 矩阵(Medium)(JAVA) 题目地址: https://leetcode.com/problems/01-matrix/ 题目描述: Given a matrix consists of 0 and 1, find the distance of the nearest 0 for each cell. The distance be...

qq_16927853的博客 244

[Swift]LeetCode542. 01 矩阵 | 01 Matrix

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:https://github.com/strengthen/LeetCode➤原文地址:https://www.cnblogs.com/streng...

weixin_30824277的博客 175

leetcode 542. 01 Matrix 01 矩阵(中等)

判断使用动态规划思路解决问题,先定义一个数组dp[][]来,找到状态转移方程式。本题需要从左上开始搜索一次,右下开始搜索一次。

ln_ydc的专栏 367

leetcode 542. 01 Matrix | 542. 01 矩阵(图解,广度优先搜索)

题目 https://leetcode.com/problems/01-matrix/ 题解 这题很有趣,图解一下思路吧~ 可以想象成“感染”的过程。 从 1 开始逐层向外扩散,感染的数字 depth 每轮 +1,直到所有格子全部感染为止。 为了避免重复路径,每次判断即将感染的格子是否大于当前的感染数字 depth。 class Solution { int M; int N; public int[][] updateMatrix(int[][] mat) {

寒泉 4万+

LeetCode //C - 542. 01 Matrix

【代码】LeetCode //C - 542. 01 Matrix。

Made in Code 2091

[一起来刷leetcode吧][25]--No.542 01 Matrix

这篇文章是程序自动发表的,详情可以见这里 这是leetcode的第542题--01 Matrix &emsp;&emsp;题目 Given a matrix consists of 0 and 1, find the ...

mbinary 345
上一篇: yolov8seg 瑞芯微RKNN部署
下一篇: leetcode 767. Reorganize String(重组字符串)
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值