
leetcode
xushiyu1996818
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode-063-不同路径2
否则网格 (i,j) 可以从网格 (i−1,j) 或者 网格 (i,j−1) 走过来,因此走到该格子的方法数为走到网格 (i - 1, j) 和网格 (i, j - 1)的方法数之和,即 dp[i, j] = dp[i - 1, j] + dp[i, j - 1]。第 1 行的格子只有从其左边格子走过去这一种走法,因此初始化 dp[0][j] 值为 1,存在障碍物时为 0。如果网格 (i,j) 上有障碍物,则 dp[i][j] 值为 0,表示走到该格子的方法数为 0;解法1(成功,0ms,极快)原创 2023-07-02 22:01:40 · 792 阅读 · 0 评论 -
leetcode-061-旋转链表
然后再向后移动到null,得到rightTail。然后rigthtail.next指向head,leftTail.next指向null即可。先获取链表的长度,然后从头部移动length-k-1次,得到head,leftTail,rightHead,解法1(成功,0ms,极快)原创 2023-07-02 21:49:51 · 628 阅读 · 0 评论 -
leetcode-060-排列序列
常见的做法是:代入一个具体的数值,认真调试。把候选数放在一个 有序列表 里,从左到右根据「剩下的数的阶乘数」确定每一位填谁,公式 k / (后面几位的阶乘数) 的值 恰好等于候选数组的下标;如果 k 小于等于这一个分支将要产生的叶子结点数,那说明所求的全排列一定在这一个分支将要产生的叶子结点里,需要递归求解。一句话题解:以下给出了两种方法,思路其实是一样的:通过 计算剩余数字个数的阶乘数,一位一位选出第 k 个排列的数位。由于这里考虑的是下标,第 k 个数,下标为 k - 1,一开始的时候,k--。原创 2023-07-02 19:40:32 · 624 阅读 · 0 评论 -
leetcode-059-螺旋矩阵2
如果 left<right 且 top<bottom,则从右到左填入下侧元素,依次为 (bottom,right−1) 到 (bottom,left+1),以及从下到上填入左侧元素,依次为 (bottom,left) 到 (top+1,left)。填完当前层的元素之后,将 left 和 top 分别增加 1,将 right 和 bottom 分别减少 1,进入下一层继续填入元素,直到填完所有元素为止。可以将矩阵看成若干层,首先填入矩阵最外层的元素,其次填入矩阵次外层的元素,直到填入矩阵最内层的元素。原创 2023-06-10 20:13:47 · 706 阅读 · 0 评论 -
leetcode-058-最后一个单词的长度
从最后一个字母开始继续反向遍历字符串,直到遇到空格或者到达字符串的起始位置。遍历到的每个字母都是最后一个单词中的字母,因此遍历到的字母数量即为最后一个单词的长度。由于字符串中至少存在一个单词,因此字符串中一定有字母。首先找到字符串中的最后一个字母,该字母即为最后一个单词的最后一个字母。题目要求得到字符串中最后一个单词的长度,可以反向遍历字符串,寻找最后一个单词并计算其长度。解法1(成功,1ms,较慢)原创 2023-06-09 22:34:31 · 113 阅读 · 0 评论 -
leetcode-057-插入区间
然后,再看右边,这里有个情况,就是 当intervals[i][0] > newInterval[1]说明newInterval没有和任何区间重合,比如intervals = [[1,3],[6,9]], newInterval = [4,5],直接插入即可.首先,左边,当newInterval[0] > intervals[i][1]说明没有和该区间没有重叠部分,继续遍历下一个区间,比如intervals = [[1,3],[6,9]], newInterval = [2,5]下面就要考虑重叠情况了。原创 2023-06-08 23:54:07 · 486 阅读 · 0 评论 -
leetcode-052-n皇后2
回溯的具体做法是:依次在每一行放置一个皇后,每次新放置的皇后都不能和已经放置的皇后之间有攻击,即新放置的皇后不能和任何一个已经放置的皇后在同一列以及同一条斜线上。显然,每个皇后必须位于不同行和不同列,因此将 N 个皇后放置在 N×N 的棋盘上,一定是每一行有且仅有一个皇后,每一列有且仅有一个皇后,且任何两个皇后都不能在同一条斜线上。为了降低总时间复杂度,每次放置皇后时需要快速判断每个位置是否可以放置皇后,显然,最理想的情况是在 O(1) 的时间内判断该位置所在的列和两条斜线上是否已经有皇后。原创 2023-06-07 20:15:36 · 607 阅读 · 0 评论 -
leetcode-051-n皇后
我们可以先不考虑每一个皇后之间不能相互攻击的条件,如果要求每行只能放一个皇后,我们能否穷举出所有的放置方法?对于每一个格子进行计算分析能不能放置皇后,最后的代码实现会跳过这些格子,把皇后放在合法的位置上。具体的,在每一个位置放置皇后,然后调用 backtrack 函数,进入下一行进行穷举进行判断。因为我们是一行一行从上向下放置皇后,所以下方,左下方和右下方不会有皇后(还没放皇后)。因为我们的逻辑是每一行只放一个皇后,所以这个皇后的左边和右边不需要进行检查了。N 皇后问题也是一个暴力穷举的问题。原创 2023-05-31 23:14:03 · 452 阅读 · 0 评论 -
leetcode-047-全排列2
但是这个相等条件有两种可能 一种是,1 1‘ 2,也就是选择完1之后再选择第二个1,两个元素虽然重复,但是第二个元素是前一个元素的下一层,这时是没有问题的。另一种是之前的 同层 分支已经有 1 1‘ 2了,这次的选择是 1‘ 1 2。那就说明是重复分支。具体区分的办法是 nums[i-1] 的used状态是被选择的,那么说明当前的nums[i] 是 nums[i-1]的下一层路径。否则如果 nums[i-1] 的状态是没被选择的,那么说明当前 的nums[i] 是nums[i-1] 同层路径。原创 2023-05-20 16:45:55 · 129 阅读 · 0 评论 -
leetcode-045-跳跃游戏2
以此类推,不断地在到达当前步的边界 end 前更新下一步能够到达的最远距离nextMaxEnd 作为下一步的边界,更新途中一旦到达当前步的边界 end,就表示当前步已经贪心地走完了,必须跳下一步了,step++,并且下一步能够到达的最远边界我们已经在之前比较出来了,直接更新即可:end = nextMaxEnd。到这里,其实就可以明白为什么不用遍历终点了,因为边界 end 有可能是终点,那 end 一旦到了终点其实也就到了,但是我们的代码逻辑是到达 end 就得步数加一,其实这是没必要的。原创 2023-05-14 14:51:59 · 155 阅读 · 0 评论 -
leetcode-043-字符串相乘
如果num 1和num 2都不是0,则可以通过模拟「竖式乘法」的方法计算乘积。从右往左遍历乘数,将乘数的每一位与被乘数相乘得到对应的结果,再将每次得到的结果累加。这道题中,被乘数是num 1,乘数是num 2。num1[i] x num2[j] 的结果为 tmp(位数为两位,"0x""0x", "xy""xy" 的形式),其第一位位于 res[i+j],第二位位于 res[i+j+1]。该算法是通过两数相乘时,乘数某位与被乘数某位相乘,与产生结果的位置的规律来完成。需要注意的是,num 2。原创 2023-05-14 11:37:17 · 109 阅读 · 0 评论 -
leetcode-040-组合总和2
很容易想到的方案是:先对数组 升序 排序,重复的元素一定不是排好序以后相同的连续数组区域的第 11 个元素。也就是说,剪枝发生在:同一层数值相同的结点第 22、33 ... 个结点,因为数值相同的第 11 个结点已经搜索出了包含了这个数值的全部结果,同一层的其它结点,候选数的个数更少,搜索出的结果一定不会比第 11 个结点更多,并且是第 11 个结点的子集。这里我们使用和第 39 题和第 15 题(三数之和)类似的思路:不重复就需要按 顺序 搜索, 在搜索的过程中检测分支是否会出现重复结果。原创 2023-05-08 22:48:19 · 721 阅读 · 0 评论 -
leetcode-037-解数独
尝试去填充数组,只要行,列, 还有 3*3 的方格内 出现已经被使用过的数字,我们就不填充,否则尝试填充。声明布尔数组,表明行列中某个数字是否被使用了, 被用过视为 true,没用过为 false。我们尝试填充,如果发现重复了,那么擦除重新进行新一轮的尝试,直到把整个数组填充完成。类似人的思考方式去尝试,行,列,还有 3*3 的方格内数字是 1~9 不能重复。数独首先行,列,还有 3*3 的方格内数字是 1~9 不能重复。如果填充失败,那么我们需要回溯。初始化布尔数组,表明哪些数字已经被使用过了。原创 2023-05-07 17:49:37 · 163 阅读 · 0 评论 -
leetcode-035-搜索插入位置
情况 1:如果当前 mid 看到的数值严格小于 target,那么 mid 以及 mid 左边的所有元素就一定不是「插入元素的位置」,因此下一轮搜索区间是 [mid + 1..right],下一轮把 left 移动到 mid + 1 位置,因此设置 left = mid + 1;说明:上面的两点中,「情况 2」其实不用分析得那么细致, 因为只要「情况 1」的区间分析是正确的,「情况 2」一定是「情况 1」得到的区间的反面区间。根据示例,分析题目要我们返回的「插入元素的位置」是什么。原创 2023-05-06 23:29:10 · 537 阅读 · 0 评论 -
leetcode-030-串联所有单词的子串
初始化 differ 时,出现在窗口中的单词,每出现一次,相应的值增加 1,出现在 words 中的单词,每出现一次,相应的值减少 1。窗口移动时,若出现 differ 中值不为 0 的键的数量为 0,则表示这个窗口中的单词频次和 words 中单词频次相同,窗口的左端点是一个待求的起始位置。不同的是第 438 题的元素是字母,而此题的元素是单词。然后进行回溯,对每个下标,进行dfs,碰到dict[index][i]为true的,wordsNum[i]--,如果回溯到wordsNum全为0,代表全部对应。原创 2023-05-06 22:40:59 · 131 阅读 · 0 评论 -
leetcode-027-移除元素
如果左指针 left 指向的元素等于 val,此时将右指针 right 指向的元素复制到左指针 left 的位置,然后右指针 right 左移一位。如果赋值过来的元素恰好也等于 val,可以继续把右指针 right 指向的元素的值赋值过来(左指针 left 指向的等于 val 的元素的位置继续被覆盖),直到左指针指向的元素的值不等于 val 为止。如果右指针指向的元素不等于 val,它一定是输出数组的一个元素,我们就将右指针指向的元素复制到左指针位置,然后将左右指针同时右移;解法1(成功,0ms,极快)原创 2023-05-05 23:11:04 · 798 阅读 · 0 评论 -
leetcode-025-k个一组翻转链表
特殊情况,当翻转部分长度不足 k 时,在定位 end 完成后,end==null,已经到达末尾,说明题目已完成,直接返回即可。初始需要两个变量 pre 和 end,pre 代表待翻转链表的前驱,end 代表待翻转链表的末尾。翻转链表,然后将三部分链表连接起来,然后重置 pre 和 end 指针,然后进入下一次循环。经过k此循环,end 到达末尾,记录待翻转链表的后继 next = end.next。需记录翻转链表前驱和后继,方便翻转完成后把已翻转部分和未翻转部分连接起来。解法1(成功,0ms,极快)原创 2023-05-05 22:58:18 · 108 阅读 · 0 评论 -
leetcode-024-两两交换链表中的节点
用 head 表示原始链表的头节点,新的链表的第二个节点,用 newHead 表示新的链表的头节点,原始链表的第二个节点,则原始链表中的其余节点的头节点是 newHead.next。如果链表中至少有两个节点,则在两两交换链表中的节点之后,原始链表的头节点变成新的链表的第二个节点,原始链表的第二个节点变成新的链表的头节点。两两交换链表中的节点之后,新的链表的头节点是 dummyHead.next,返回新的链表的头节点即可。将链表根据节点的位置分成链表1和链表2,原来的变成12121,然后再合并,2121。原创 2023-05-02 01:43:30 · 702 阅读 · 0 评论 -
leetcode-018-四数之和
在确定第一个数之后,如果 nums[i]+nums[n−3]+nums[n−2]+nums[n−1]<target,说明此时剩下的三个数无论取什么值,四数之和一定小于 target,因此第一重循环直接进入下一轮,枚举 \textit{nums}[i+1]nums[i+1];在确定前两个数之后,如果 nums[i]+nums[j]+nums[n−2]+nums[n−1]<target,说明此时剩下的两个数无论取什么值,四数之和一定小于 target,因此第二重循环直接进入下一轮,枚举 nums[j+1]。原创 2023-05-01 12:54:58 · 691 阅读 · 0 评论 -
leetcode-016-最接近的三数之和
同时判断 sum 与 target 的大小关系,因为数组有序,如果 sum > target 则 end--,如果 sum < target 则 start++,如果 sum == target 则说明距离为 0 直接返回结果。根据 sum = nums[i] + nums[start] + nums[end] 的结果,判断 sum 与目标 target 的距离,如果更近则更新结果 ans。在数组 nums 中,进行遍历,每遍历一个值利用其下标i,形成一个固定值 nums[i]原创 2023-04-25 21:28:13 · 132 阅读 · 0 评论 -
leetcode-012-整数转罗马数字
这个思路相对比较简单,因为题目中说输入在 1 ~3999 的范围内,所以我们把 1 到 9,10 到 90,100 到 900,1000 到 3000 对应的罗马数字都表示出来,最后对于任何输入,我们要做的就是把找到的罗马数字组合起来即可。比如输入是 2359,我们找到 2000,300,50,9 对应的罗马数字为 MM,CCC,L,IX,组合后得到结果为 MMCCCLIX。然后根据算法,将1,5,10对应的char拼接成对应的字符串。1994,这样,每位分别处理,1000,900,90,4。原创 2023-04-23 22:56:20 · 111 阅读 · 0 评论 -
leetcode-009-回文数
这里需要注意的一个点就是由于回文数的位数可奇可偶,所以当它的长度是偶数时,它对折过来应该是相等的;当它的长度是奇数时,那么它对折过来后,有一个的长度需要去掉一位数(除以 10 并取整)。如果是奇数的话,最中间的数字就在revertNum 的最低位上,将它除以 10 以后应该和 x 相等。将最低的数字加到取出数的末尾:revertNum = revertNum * 10 + y。每次进行取余操作 ( %10),取出最低的数字:y = x % 10。通过取整和取余操作获取整数中对应的数字进行比较。原创 2023-04-20 21:19:01 · 401 阅读 · 0 评论 -
leetcode-739-每日温度-java
题目及测试package pid739;/*739. 每日温度请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30原创 2020-10-22 16:27:00 · 333 阅读 · 0 评论 -
leetcode-647-回文子串-java
题目及测试package pid647;/* 647. 回文子串给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。 示例 1:输入:"abc"输出:3解释:三个回文子串: "a", "b", "c"示例 2:输入:"aaa"输出:6解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa" 提示: 输入的字符串长度不会超过 100原创 2020-10-19 13:30:42 · 227 阅读 · 0 评论 -
leetcode-617-合并二叉树-java
题目及测试package pid617;/*617. 合并二叉树给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入: Tree 1 Tree 2 1原创 2020-10-16 16:31:15 · 176 阅读 · 0 评论 -
leetcode-581-最短无序连续子数组-java
题目及测试package pid581;/*581. 最短无序连续子数组给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15]输出: 5解释: 你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。说明 : 输入的数组长度范围在 [1, 10,000]。 输入的数组可能原创 2020-10-10 10:58:21 · 261 阅读 · 0 评论 -
leetcode-560-和为K的子数组-java
题目及测试package pid560;/*560. 和为K的子数组给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 : 数组的长度为 [1, 20,000]。 数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。*/public class main原创 2020-09-30 10:06:57 · 280 阅读 · 0 评论 -
leetcode-543-二叉树的直径-java
题目及测试package pid543;/*543. 二叉树的直径给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 注意:两结点之间的路径长度是以它们之间原创 2020-09-29 10:42:20 · 292 阅读 · 0 评论 -
leetcode-538-把二叉搜索树转换为累加树-java
题目及测试package pid538;/*538. 把二叉搜索树转换为累加树给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。提醒一下,二叉搜索树满足下列约束条件: 节点的左子树仅包含键 小于 节点键的节点。 节点的右子树仅包含键 大于 节点键的节点。 左右子树也必须是二叉搜索树。注意:本题和 1038: https://le原创 2020-09-28 09:57:57 · 181 阅读 · 0 评论 -
leetcode-494-目标和-java
题目及测试package pid494;/*494. 目标和给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。返回可以使最终数组和为目标数 S 的所有添加符号的方法数。 示例:输入:nums: [1, 1, 1, 1, 1], S: 3输出:5解释:-1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1原创 2020-09-27 15:22:27 · 176 阅读 · 0 评论 -
leetcode-448-找到所有数组中消失的数字-java
题目及测试package pid448;/*448. 找到所有数组中消失的数字给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]*/import java.原创 2020-09-01 11:40:26 · 240 阅读 · 0 评论 -
leetcode-438-找到字符串中所有字母异位词-java
题目及测试package pid438;/*438. 找到字符串中所有字母异位词给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。说明: 字母异位词指字母相同,但排列不同的字符串。 不考虑答案输出的顺序。示例 1:输入:s: "cbaebabacd" p: "abc"输出:[0, 6]解释:起始索引等于 0 的子原创 2020-08-31 14:55:13 · 240 阅读 · 0 评论 -
leetcode-437-路径总和 III-java
题目及测试package pid437;/* 437. 路径总和 III给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8 10原创 2020-08-30 15:28:43 · 175 阅读 · 0 评论 -
leetcode-416-分割等和子集-java
题目及测试package pid416;/*416. 分割等和子集给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200示例 1:输入: [1, 5, 11, 5]输出: true解释: 数组可以分割成 [1, 5, 5] 和 [11]. 示例 2:输入: [1, 2, 3, 5]输出: false解释: 数组不能分割成两个元素和相等原创 2020-08-19 15:02:08 · 413 阅读 · 0 评论 -
leetcode-399-除法求值-java
题目及测试package pid399;/* 399. 除法求值给出方程式 A / B = k, 其中 A 和 B 均为用字符串表示的变量, k 是一个浮点型数字。根据已知方程式求解问题,并返回计算结果。如果结果不存在,则返回 -1.0。示例 :给定 a / b = 2.0, b / c = 3.0问题: a / c = ?, b / a = ?, a / e = ?, a / a = ?, x / x = ? 返回 [6.0, 0.5, -1.0, 1.0, -1.0 ]输入为原创 2020-08-18 14:20:27 · 329 阅读 · 0 评论 -
leetcode-394-字符串解码-java
题目及测试package pid394;/*394. 字符串解码给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。 示例 1:原创 2020-08-13 11:39:50 · 355 阅读 · 0 评论 -
leetcode-338-比特位计数-java
题目及测试package pid338;/* 338. 比特位计数给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1] 0 01 10示例 2:输入: 5输出: [0,1,1,2,1,2] 0 01 10 11 100 101 110 111进阶: 给出时间复杂度为O(n*sizeof(integer))的解答原创 2020-08-12 11:38:36 · 208 阅读 · 0 评论 -
leetcode-337-打家劫舍 III-java
题目及测试package pid337;/*337. 打家劫舍 III在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。示例 1:输入: [3,2,3,null,3,nul原创 2020-08-11 14:49:14 · 278 阅读 · 0 评论 -
leetcode-226-翻转二叉树-java
题目及测试package pid226;/*226. 翻转二叉树翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1备注:这个问题是受到 Max Howell 的 原问题 启发的 : 谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这原创 2020-08-10 15:15:28 · 273 阅读 · 0 评论 -
leetcode-221-最大正方形-java
题目及测试package pid221;/* 221. 最大正方形在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4*/import java.util.List;public class main { public static void main(String[] args) { char[][] testTabl原创 2020-08-07 16:46:16 · 324 阅读 · 0 评论