leeteCode
文章平均质量分 64
leeteCode
ZNineSun
大道至简,返璞归真
展开
-
122. 买卖股票的最佳时机 II
因为我们每一步都是最优解,所以只需要考虑最后一天的情况即可,但是为了让利益最大化,所以最后一天手上只有持有现金才能让收益最高,所以我们最终取的结果应该是dp[length][0]声明一个二维数组dp[i][j],之所以使用二维数组是因为变化的状态有两个,一个是哪一天,一个是这一天持股状态是持有还是未持有。这是一道很经典的动态规划类型题目,如果看过我之前写的关于动态规划类型的题目,便会很了解做这种题目的套路。对于dp[i][0]表示在第i天持有的是现金未持有股票,我们只需考虑前一天(i-1天)原创 2023-02-02 18:19:41 · 301 阅读 · 0 评论 -
38. 外观数列
今天给大家带来一道比较有意思的题目,先看看题目描述。每一次都是对前面一个字符串的每一位的描述。理解了题目的思路,代码自然就好写啦。n:表示我们要计算多少次。代码如下:(Java版)原创 2023-01-30 15:35:01 · 402 阅读 · 0 评论 -
29. 两数相除
直到100>>5=3,刚好大于等于我们的除数3,这时我们将$ 100-2^5*3=4 $,也就是减去了32个3,接下来我们再处理4,同样手法可以再减去一个3。对于这种类型的题目,当题目要求不能使用乘法、除法时,那么则需要我们从移位、或、与、异或等位运算的角度来进行考虑,接下来我带着大家从这道题目入手,看看位运算到底是怎么应用的。要求商,我们首先想到的是减法,能被减多少次,那么商就为多少,但是明显减法的效率太低,那么我们可以用位移法,因为计算机在做位移时效率特别高,余数,是一种数学术语。原创 2023-01-28 20:50:04 · 983 阅读 · 0 评论 -
62. 不同路径
接下来,我们继续确定初始条件,对于第一行的格子只能从左边移动而来,对于第一列的格子只能从上面的格子移动而来,所以dp[0][i]=1,dp[i][0]=1。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。对于动态规划类型的题目,我们只需先确定状态转移方程,然后在确定初始条件即可将问题迎刃而解。今天给大家继续带来一道经典的动态规划题目。问总共有多少条不同的路径?原创 2022-11-07 16:24:36 · 146 阅读 · 0 评论 -
56. 合并区间
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi]。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。如果既不满足交集也不满足子集的话,我们就认为他是一个独立的区间,否则的话,我们就需要将两个结果集进行合并,同时和下一个区间进行对比。今天这道题难度一般,主要是感觉挺好玩的,和大家分享一下。原创 2022-11-04 16:21:40 · 199 阅读 · 0 评论 -
22. 括号生成
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。生成n对括号,则要保证括号都合法的话,那么最基本的要求便是。按照这种思路进行递归和剪枝,便可以罗列出所有的括号匹配情况。今天给大家分享一道递归+剪枝类型的题目。原创 2022-10-21 15:03:55 · 177 阅读 · 0 评论 -
543. 二叉树的直径
当然很多人想当然的认为树的考查只有深度优先遍历(DFS)以及广度优先遍历(BFS),其实这个说法是错误的,因为DFS只是对应二叉树的前序遍历,BFS也只是对应层次遍历而已。给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。今天给大家带来一道树类型的深度优先遍历题目。对于树类型的题目,无论怎么考无非就是考察。原创 2022-10-07 18:52:08 · 142 阅读 · 0 评论 -
猿创征文|461. 汉明距离
今天给大家带来一道位运算类型的题目,题目很简单,但是很多人对于位运算没有一个比较清晰的认知,今天通过这道题目带大家了解一下。这道题其本质就是让你将x,y转化为2进制,然后计算两个二进制之间不同的位数。两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。就是从最右边也就是最低位开始比较,判断该为是否是1,如果是1,则。我们无需直接将x,y进行二进制的转换,我们可以一位一位的去比较。给你两个整数 x 和 y,计算并返回它们之间的汉明距离。上面这个代码什么意思呢?...原创 2022-09-01 10:32:12 · 126 阅读 · 0 评论 -
437. 路径总和 III
后来我才注意到,虽然树的每一个结点的都是int类型,但是整型超过128之后就无法通过==来进行对比,所以声明为 long或者更高精度的值都可以。给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。今天给大家带来一道深度优先遍历的题目,要知道树的前序遍历就是深度优先遍历,按照这个思路很多题目就会很轻松的解决。这道题我只需要穷举就好,思路也很简单,我们只需记住每一个结点的父节点,然后一直向上去找,一直找到根节点为止。...原创 2022-08-31 16:35:24 · 188 阅读 · 0 评论 -
416. 分割等和子集
打卡!!!每日一题今天带着大家做一道相对比较难的题目,当然我会通过讲解01背包问题带着大家过渡一下。题目描述:给你一个 只包含正整数 的 非空 数组 nums。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。题目示例:再看这道题之前,我们先研究一下01背包的问题,为啥要研究01背包呢,这道题其实限制条件很明显,首先数组里的元素总和一定是偶数,其次,我们只需要能找到元素之和==sum/2的集合就可以了。...原创 2022-08-30 17:36:14 · 850 阅读 · 1 评论 -
406. 根据身高重建队列
返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。所以有了以上基础知识作为支撑,我们就可以将排好序的身高列表,依次放在一个list里,我们以题目示例1为例:[[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]]按照身高由大到小的排序:[[7,0],[7,1],[6,1],[5,0],[5,2],[4,4]]如:一个数组里有以下元素:[3 , 4 , 1 , 9 , 0 , 7 ]原创 2022-08-22 01:30:05 · 285 阅读 · 0 评论 -
394. 字符串解码
此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。我们在判断数字的时候需要注意,如:100[abc],此时我们在遍历字符串的时候呢,很容易把1 0 0分割开。同时我们根据括号的匹配规则,遇到左括号进栈,遇到右括号就出栈,一直出栈到遇到能与之匹配的左括号为止。输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。栈运算类型的题目比较常见的题型有:括号匹配,表达式求值等。给定一个经过编码的字符串,返回它解码后的字符串。......原创 2022-08-18 12:42:13 · 303 阅读 · 0 评论 -
236. 二叉树的最近公共祖先
两个节点在同一侧的话,我们需要用一个Hash表存储每个节点的所有父节点,然后获取p,q的父节点列表,因为我们需要层数最深的父节点,所以我们可以考虑采用中序遍历二叉树,这样的话层数最深的结点就会在链表的前面。百度百科中最近公共祖先的定义为“对于有根树T的两个节点p、q,最近公共祖先表示为一个节点x,满足x是p、q的祖先且x的深度尽可能大(一个节点也可以是它自己的祖先)。今天给大家带来一道树类型的题目,也是一道比较经典的深度优先遍历的题目。判断是否在树的两侧,我们只需划分左右子树即可。...原创 2022-08-02 13:15:35 · 237 阅读 · 0 评论 -
221. 最大正方形
本题思路很简单,直接暴力解决,两个for循环遍历,一直遍历到最右下的结点,然后找到一个面积最大值,由于时间复杂度太高,也对不起我们的智商(PS听我吹吹牛就算了,在真正笔试或者面试的时候一定要用最快的速度解决出来,只要能AC就是厉害),下面我们讨论一下动态规划的解决办法。如果D的边长取A的边长+1,即D的边长=4,那么其组成的大正方形,一定包含E区域,这就不合理了,因为题目要求的是我们的正方形必须全部为1。我们定义dp[i][j],表示以(i,j)为右下角的,且只包含1的正方形的边长最大值。......原创 2022-07-30 23:55:29 · 243 阅读 · 0 评论 -
207.课程表
在了解什么叫拓扑序列之前,我们需要先知道数据结构中的图,其图分为有向图和无向图。而在有向图中,如果该图中存在环,则此图将不会有拓扑序列给定一个包含n个节点的有向图G,我们给出它的节点编号的一种排列,如果满足对于图G中的任意一条有向边(u,v),u在排列中都出现在v的前面。如何构造出拓扑序列从上图可以看出,拓扑排序就是依次去找入度为0的结点,所以一旦一个有向图中存在环的话,就像下图所示有向有环图。......原创 2022-07-28 16:17:37 · 300 阅读 · 0 评论 -
152. 乘积最大子数组
给你一个整数数组nums,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。在上面的这个过程中,我忽略了负值的情况,也就是说前面可能是负值,后面又乘了一个负值之后,就会变成一个较大的值。刚开始看到这道题,对其很是轻蔑,想着这不就是一道很入门的动态规划题目吗,还是老规矩,找状态转移方程。则有dp[i]=max{nums[i],nums[i]*dp[i-1]}即dp[i]表示到第i个结点对应的最大连续子数组的乘积。初始值dp[0]=nums[0]=2;......原创 2022-07-25 14:40:15 · 767 阅读 · 0 评论 -
141.环形链表
打卡!!!每日一题今天给大家分享一道链表类型的题目,题目很简单,主要是处理的方法,本文主要有两道题,带着大家由第一道题过渡到第二道题目。原创 2022-07-22 14:28:39 · 221 阅读 · 0 评论 -
121. 买卖股票的最佳时机
设计一个算法来计算你所能获取的最大利润。若prices[i]=min,计算第i天的收益dp[i]=price[i]-min;说明o(n^2)的时间复杂度不行,我们就只能乖乖的去思考其动态规划的思想了。后面为继续为大家每日分享一题,也欢迎大家一起来打卡,共同进步!最后我们找出dp[i]中的最大值。......原创 2022-07-21 10:55:59 · 145 阅读 · 0 评论 -
101. 对称二叉树
全部符合对称的要求,则说明第三层是对称的,如果还有第三层、第四层、第五层…我们依此逻辑继续向下判断即可。第二层右侧的2这个节点,其右节点=3;我以题目中的示例1为例,第二层左侧的2这个节点,其左节点=3;给你一个二叉树的根节点root,检查它是否轴对称。是否轴对称,其实就是让我们判断左右两边的子树是否相等。第二层左侧的2这个节点,其右节点=4;第二层右侧的2这个节点,其左节点=4;今天给大家分享一道递归类型的题目。在深入一点,其实就是让我们判断。代码(PSJava版)...原创 2022-07-18 14:47:43 · 235 阅读 · 0 评论 -
96. 不同的二叉搜索树
于是G(n)=G(0)*G(n-1)+G(1)*G(n-2)+G(2)*G(n-3)+…+G(n-1)*G(0)比如我们的n=7,i=3,则对应的结点序列为[1,2,3,4,5,6,7]以i为根节点,则其左子树结点个数为i-1,右子树结点个数为n-i。则有G(n)=f(1)+f(2)+f(3)+…我们先假设n个结点对应的二叉搜索树的个数为G(n);记f(i)表示为以i为根的二叉搜索树的个数。则f(i)=G(i-1)*G(n-i)右子树的结点有[4,5,6,7]上面的dp就是我们的G(n)...原创 2022-07-17 16:57:50 · 202 阅读 · 1 评论 -
64. 最小路径和
打卡!!!每日一题今天来一道经典的动态规划题目题目描述:题目示例:我们分析一下:由于路径的方向只能是向下或向右,因此会有以下几种情况:我们记dp[i][j]表示到[i,j]的最小路径值是不是很简单了,我们看看代码(PS:Java版)...原创 2022-07-14 16:09:27 · 167 阅读 · 0 评论 -
31. 下一个排列
题目描述:示例:我刚开始读完题目一脸懵逼。为了防止大家和我一样,我就给大家翻译翻译题目说了啥。按照这个思路,我们继续向下思考,刚好比当前数大的数,那么我们一定是从位数最低的开始去找,即从后面开始找,找的方法也很简单,我以排列[4,5,2,6,3,1]为例,我们先确定第一个位置i,使得i1不符合,我们让i–,此时i指向3,i-1指向6,6>3也不符合。继续让i–,此时的i指向6,i-1指向2...原创 2022-07-11 15:57:26 · 216 阅读 · 0 评论 -
leetCode-栈类型详解
在刷题的时候遇到一个后缀表达式的题目,然后感觉该题是比较经典的栈应用类型的题目,正好借着该题,给大家聊一聊栈的用法,顺便解决了这道题。众所周知,栈是是一个先进后出的数据结构,利用该特性,在程序的设计中十分常见,如:括号匹配、表达式求值、在递归中的应用等都离不开栈这一数据结构。我下面一一给大家简单说一下。(PS:栈的数据结构我就不再此处赘述,大家可以自行了解)假设表达式中允许包含两种括号 :|直|括号和方括号 ,其嵌套 的顺序任意 即([]())或[([][ ])]等均为正确的格式,[(])或([())或((原创 2022-06-28 18:55:55 · 594 阅读 · 0 评论 -
前缀和差值详解
最近做题的时候,遇到了很多求数组中连续子数组值的和问题,简单点的我还能通过滑动窗口等方法解决掉,后来发现越来越困难,然后看到网上的很多解析,发现很多都是通过一种新的解题思路:前缀和的思路去解题,然后我用该方法做了几道题,略有所感,下面把思路和通过题目实际去解决的过程给大家分享一下。顾名思义,是要求前缀的总和。对于一个存放数字的数组而言,前缀就是指的数组的前k项,因此对应的前缀和就是数组前k项的和。前缀和一般用来求数组中连续段子数组的值的和。同时为了优化查询速度,我们保存前缀和的方式采用HashMap,因为H原创 2022-06-17 23:18:54 · 272 阅读 · 0 评论 -
滑动窗口详解
滑动窗口究其本质就是一种基于双指针的思想,两个指针指向的元素之间形成一个窗口。原创 2022-06-07 10:50:15 · 3196 阅读 · 1 评论 -
剑指 Offer 14- II. 剪绳子 II
算法其本质就是通过合适的数据结构和数学运算来解决相应的问题,今天遇到一个完美的将数学运算结合进来的题目,话不多说直接看题:题目描述:给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m - 1] 。请问 k[0]* k[1]*…*k[m - 1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。答案需要取模 1e9+7(1000000原创 2022-05-31 13:46:29 · 209 阅读 · 0 评论 -
每日一题:剑指 Offer 15. 二进制中1的个数
今天通过一道简单的题目看看位运算到底是个怎么一回事,很多人都不太理解位运算的意义。在我们cpu计算时,加,减,位运算要比乘除速度快的特别多,其中比较常见的位运算有:&(与) ||(或) ^(异或) 等。<<左移· >> 右移题目描述:编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量).)。题目示例:我们看看这道题,以11为例,11的二进制为1011,很明显有3个1。我们的任务就是通原创 2022-05-22 10:28:27 · 139 阅读 · 0 评论 -
每日一题:剑指 Offer 33. 二叉搜索树的后序遍历序列
今天带大家通过一道相对比较难的题再来看看分治和递归的思想题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。题目示例:首先这道题,我们先关注两点:1.二叉搜索树2.后序遍历什么叫二叉搜索树,即存在左子树的话,则左子树的值都小于根节点,存在右子树的话,则右子树的每一个结点都大于根节点。后序遍历有什么特点呢?首先后序遍历的顺序是:左子树->右子树->根节点两个结合起原创 2022-05-22 00:17:48 · 290 阅读 · 0 评论 -
剑指 Offer 16. 数值的整数次方
今天通过一道难度看着很大其实一般的题目来深刻的理解一下递归和分治的思想。题目描述:实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。题目示例:在做这道题之前我们先看个例子:x64x^{64}x64我们可以按照:x−>x2−>x4−>x8−>x16−>x32−>x64x->x^2->x^4->x^8->x^{16}->x^{32}->x^{64}x−&原创 2022-05-20 21:30:41 · 140 阅读 · 0 评论 -
剑指 Offer 07. 重建二叉树
今天通过这道题来研究研究前序遍历,中序遍历之间到底有什么关系题目描述:输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。题目示例:我先说一下解题思路,当然,你要是想彻底了解下面的过程,那么你应该要对二叉树的前中后序遍历了然于心,不是很清楚的,可以先读一下:《剑指 Offer 54. 二叉搜索树的第k大节点》,这道题目弄懂之后在回来看看这道题。我们整个过程就是不停的通过前序遍历去找根节点,然后通过中序遍历去划分左右子树原创 2022-05-20 20:47:31 · 324 阅读 · 0 评论 -
排序算法—堆排序
堆分为:大根堆小根堆我先简单说一下大根堆的定义可以将该一维数组视为一棵完全二叉树,大根堆的最大元素存放在根结点,且其任一非根结点的值小于等于其双亲结点值。小根堆的话则和大根堆完全相反,即:小根堆的最小元素存放在根结点,且其任一非根结点的值大于等于其双亲结点值。堆排序的基本思想是:1、将带排序的序列构造成一个大顶堆,根据大顶堆的性质,当前堆的根节点(堆顶)就是序列中最大的元素;2、将堆顶元素和最后一个元素交换,然后将剩下的节点重新构造成一个大顶堆;3、重复步骤2,如此反复,从原创 2022-05-19 10:44:55 · 800 阅读 · 0 评论 -
排序算法—快速排序
快速排序的执行流程如下:1.从序列中选择一个轴点元素pivot从最后一个元素向前遍历,一般情况下选择起始点作为privot2.利用pivot将数组分割成2个子数组将小于pivot的元素放在pivot的左侧将大于pivot的元素放在pivot的右侧将等于pivot的元素放在pivot的哪侧都可以,本文选择左侧对子序列进行步骤1和步骤2操作根据这个流程,我们图解一下:代码如下: void quickSort(int[] nums, int start, int end)原创 2022-05-19 10:37:42 · 211 阅读 · 0 评论 -
剑指 Offer 45. 把数组排成最小的数
我们今天通过一道稍微有点难度的题目来讲述一下排序的思想。题目描述:输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。题目示例:这道题其本质就是排序,在做这道题之前,我们先了解一下什么叫快速排序快速排序的执行流程如下:1.从序列中选择一个轴点元素pivot从最后一个元素向前遍历,一般情况下选择起始点作为privot2.利用pivot将数组分割成2个子数组将小于pivot的元素放在pivot的左侧将大于pivot的元素放在pivot的右侧原创 2022-05-16 17:32:46 · 245 阅读 · 0 评论 -
剑指 Offer 54. 二叉搜索树的第k大节点
我通过一道很简单的题来帮大家了解一下二叉树的前中后序遍历题目描述:给定一棵二叉搜索树,请找出其中第 k 大的节点的值。示例:这道题目很简单,但是我们要重点注意一下二叉搜索树,根据二叉搜索树的特性,我们可以提高代码的效率。什么是二叉搜索树:左子树上的各个节点均小于根节点的值右子树上的各个节点均大于根节点的值根据这个特性,我们再来看看题目,找到第k大的结点,那么就要求我们遍历的结点顺序是由大至小的我们就以示例中的二叉树为例进行演示:1.前序遍历:(先遍历根节点,在遍历左节点 ,在原创 2022-05-15 15:57:41 · 312 阅读 · 0 评论 -
547. 省份数量
题目描述:有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。返回矩阵中 省份 的数量。题目示例1:输入:is原创 2022-03-25 14:47:02 · 156 阅读 · 0 评论 -
153. 寻找旋转排序数组中的最小值
题目描述:已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …, a[n-2]] 。给你一个元素值 互不相同 的数原创 2022-03-20 14:53:24 · 244 阅读 · 0 评论 -
198.打家劫舍
题目描述:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。题目示例1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4原创 2022-03-15 15:20:30 · 189 阅读 · 0 评论 -
70.爬楼梯
这是一道动态规划类型的题目,对于动态规划类型的题目我们需要解决的就是无后效性的问题怎么去解决呢?题目描述:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?题目示例1:输入:n = 2输出:2解释:有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶题目示例2:输入:n = 3输出:3解释:有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶这道题理解起来很简单原创 2022-03-15 11:20:21 · 210 阅读 · 0 评论 -
77.组合
下面我通过讲解一道回溯、递归类型的题目帮助大家快速的理解递归的用法题目描述:给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。题目示例:输入:n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]这道题什么意思呢,就是给你一个n,则会生成一个数组为[ 1,2,3,…,n],然后让你输出这个数组的全排列这道题是一道很典型的回溯与剪枝类型的题目,我们通过下面这个方原创 2022-03-08 22:55:39 · 497 阅读 · 0 评论 -
542.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]]本题是一道很典型的广度优原创 2022-03-04 12:06:51 · 457 阅读 · 0 评论