![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode刷题
抹茶2077
有效输出,无限进步。
展开
-
637. 二叉树的层平均值
637. 二叉树的层平均值:题目链接 :637. 二叉树的层平均值题目:给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。思路:1、带层值记录的BFS利用队列存储根节点,找到下一层其子节点加入队列。根据队列中存储节点数确定每层子节点个数。将每层节点按照广度优先顺序加入到子集合。每层中计算节点值的平均值加入到结果集合中时间复杂度:O(n+h)=O(n) n为层序遍历遍历节点数量,h为二叉树高度,进行O(h原创 2022-02-05 15:43:08 · 1888 阅读 · 2 评论 -
429. N 叉树的层序遍历
429. N 叉树的层序遍历:题目链接 :429. N 叉树的层序遍历题目:给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。思路:1、BFS(非递归)利用队列存储根节点,找到下一层其子节点加入队列。根据队列中存储节点数确定每层子节点个数。将每层节点按照广度优先顺序加入到子集合。AC代码:BFS /*// Definition for a Node.cl原创 2022-02-04 16:13:57 · 1998 阅读 · 0 评论 -
70. 爬楼梯
70. 爬楼梯:题目链接 :70. 爬楼梯题目:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?思路1:(线性)动态规划分析问题,自顶向下分析,得到递归树:DP三要素:(1)重复子问题:由递归树可得存在重复子问题。(2)无后序性:递归树上层的结果一定包含其子树结果,子树结果不会被上层修改,具有单向依赖性。(3)最优子结构:目的是要求最多的种类,子节点为父节点提供最优解。根据递归树可以自底向上找到:(原创 2022-02-03 19:35:59 · 2303 阅读 · 0 评论 -
53. 最大子数组和
53. 最大子数组和:题目链接 :53. 最大子数组和题目:给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。思路1:动态规划首先分析题目要求可得,目标是得到数组元素的连续最大和,这个和可以是一个元素,但必须保证是连续n个元素之和。解决有后效性问题:有后效性指的是前面计算得到的子问题得到的值会被后序子问题的计算修改,恰如本题中,如果我们设置子问题状态位“经过某元素的最大子数组和”,那么意味着所有原创 2022-01-29 21:18:45 · 2235 阅读 · 0 评论 -
300. 最长递增子序列
300. 最长递增子序列:题目链接 :300. 最长递增子序列题目:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。思路1:动态规划首先分析题目要求可得,目标是得到严格递增的不修改数组内元素位置的最长子序列。重叠子问题:存在重叠子问题,递增子序列存在包含关系,可以使用DP策略。状态转移方程:从长度入手规定原创 2022-01-29 16:58:58 · 1729 阅读 · 0 评论 -
76. 最小覆盖子串
76. 最小覆盖子串:题目链接 :76. 最小覆盖子串题目:给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。思路:滑动窗口先将子串t中出现元素存入hashMap,再遍历串s比较与t中重合的元素。通过重合元素的个数来确立右侧边界,并且记录不重复的元素个数Vaild当记录的元素个数达到了t串所需后,需要考虑左侧边界的收缩左边界收缩时需要判断离开窗口的元素的出现次数是否是满足t串需求,如果满原创 2022-01-26 16:18:30 · 1864 阅读 · 0 评论 -
3. 无重复字符的最长子串
3. 无重复字符的最长子串:题目链接 :剑指 Offer 54. 二叉搜索树的第k大节点题目:给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。思路:经典的滑动窗口,HashMap记录每种字符的出现次数,滑动窗口的三个要素:左、右侧窗口起点,窗口大小值。本体要求窗口值为“只出现一次的字符”,那需要在记录字符出现次数的同时对字符出现次数更新,判断是否>1更新左侧窗口起点。此处的i变量代表右侧窗口终点值,所以实际返回的i-left+1就是符合题目要求的窗口值。原创 2022-01-25 11:43:11 · 1845 阅读 · 0 评论 -
剑指 Offer 54. 二叉搜索树的第k大节点
剑指 Offer 54. 二叉搜索树的第k大节点:题目链接 :剑指 Offer 54. 二叉搜索树的第k大节点题目:给定一棵二叉搜索树,请找出其中第 k 大的节点的值。思路:本题属于通过二叉搜索树性质得到有序序列类型题目。根据中序遍历左根右,左子树元素大于右子树元素,那么可以知道,如果我们使用逆中序遍历可以优先得到树中第K大的元素。AC代码:/** * Definition for a binary tree node. * public class TreeNode { *原创 2022-01-19 10:03:03 · 2136 阅读 · 0 评论 -
230. 二叉搜索树中第K小的元素
230. 二叉搜索树中第K小的元素:题目链接 :230. 二叉搜索树中第K小的元素题目:给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。思路:本题属于通过二叉搜索树性质得到有序序列类型题目。根据中序遍历左根右,左子树元素大于右子树元素,那么可以得到树中第K小的元素。AC代码:class Solution { int cnt=0; int res; public int kthSmall原创 2022-01-19 10:00:56 · 2154 阅读 · 0 评论 -
783. 二叉搜索树节点最小距离
783. 二叉搜索树节点最小距离:题目链接 :783. 二叉搜索树节点最小距离题目:给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。差值是一个正数,其数值等于两值之差的绝对值。思路:本题属于通过二叉搜索树性质得到有序序列类型题目。根据中序遍历左根右,左子树元素大于右子树元素,可以确定最大元素和最小元素的范围。使用一个节点prev保存左子树元素,node每次指向新的右子树元素,并设置全局变量的最小值进行递归更新。AC代码:/** * Defi原创 2022-01-17 11:10:43 · 1996 阅读 · 1 评论 -
107. 二叉树的层序遍历 II
107. 二叉树的层序遍历 II:题目链接 :107. 二叉树的层序遍历 II题目:给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)思路:正常的BFS层序遍历。加入集合时注意倒序加入。AC代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left;原创 2022-01-16 14:48:55 · 2108 阅读 · 0 评论 -
662. 二叉树最大宽度
662. 二叉树最大宽度:题目链接 :111. 二叉树的最小深度题目:给定一个二叉树,编写一个函数来获取这个树的最大宽度。树的宽度是所有层中的最大宽度。这个二叉树与满二叉树(full binary tree)结构相同,但一些节点为空。每一层的宽度被定义为两个端点(该层最左和最右的非空节点,两端点间的null节点也计入长度)之间的长度。思路:BFS+完全二叉树性质需要维护两个集合,依然是使用双向队列存储层序中每层的节点,对其左右节点的序号差与初始化的最大宽度之间做比较。特别注意:对比层内原创 2022-01-16 10:59:37 · 2277 阅读 · 0 评论 -
111. 二叉树的最小深度
111. 二叉树的最小深度:题目链接 :111. 二叉树的最小深度题目:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。思路:递归,考虑四种情况即可AC代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode ri原创 2022-01-15 16:53:33 · 2069 阅读 · 0 评论 -
106. 从中序与后序遍历序列构造二叉树
106. 从中序与后序遍历序列构造二叉树:题目链接 :106. 从中序与后序遍历序列构造二叉树题目:根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。思路:本体和105为姊妹题,递归方法来说目的一致:找到根节点和其左右子树在两种序列中的范围。首先根据后序最后一个节点找到root,然后根据中序遍历的规律,root值对应Index的左侧为其左子树,右侧为其右子树,那么可以判断左右子树的范围。根据中序得到的左子树序列去寻找后序中的左右子树范围,后序遍历是左右根,原创 2022-01-14 11:29:44 · 2248 阅读 · 0 评论 -
71. 简化路径
71. 简化路径:题目链接 :71. 简化路径题目:给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 ‘/’ 开头),请你将其转化为更加简洁的规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (…) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。任意多个连续的斜杠(即,’//’)都被视为单个斜杠 ‘/’ 。 对于此问题,任何其他格式的点(例如,’…’)均被视为文件/目录名称。请注意,返回的 规范路原创 2022-01-06 17:04:52 · 2177 阅读 · 0 评论 -
1576. 替换所有的问号
1576. 替换所有的问号:题目链接 :1576. 替换所有的问号题目:给你一个仅包含小写英文字母和 ‘?’ 字符的字符串 s,请你将所有的 ‘?’ 转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。注意:你 不能 修改非 ‘?’ 字符。题目测试用例保证 除 ‘?’ 字符 之外,不存在连续重复的字符。在完成所有转换(可能无需转换)后返回最终的字符串。如果有多个解决方案,请返回其中任何一个。可以证明,在给定的约束条件下,答案总是存在的。思路:思路:简单的模拟,注意以下两个点原创 2022-01-05 16:01:29 · 2176 阅读 · 0 评论 -
114. 二叉树展开为链表
114. 二叉树展开为链表:题目链接 :114. 二叉树展开为链表题目:给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。思路:1、迭代:先序根的左子树替换其右子树位置原右子树放到左子树右侧考虑原右子树为根节点的子树内的位置关系AC代码:/** * Definition for a原创 2021-11-30 23:56:26 · 2403 阅读 · 0 评论 -
226. 翻转二叉树
226. 翻转二叉树:题目链接 :226. 翻转二叉树题目:翻转一棵二叉树。思路:1、递归:每层左右节点值交换AC代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val原创 2021-11-30 23:54:56 · 2380 阅读 · 0 评论 -
101. 对称二叉树
101. 对称二叉树:题目链接 :101. 对称二叉树题目:给定一个二叉树,检查它是否是镜像对称的。思路:1、递归:对当前节点的左右子树判断对其左右子树的左右子树分别进行交替判断,即n1的左子树和n2的右子树判断,反之亦然。AC代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNo原创 2021-11-30 23:52:33 · 2302 阅读 · 0 评论 -
98. 验证二叉搜索树
98. 验证二叉搜索树:题目链接 :98. 验证二叉搜索树题目:给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树思路:1、递归函数功能:判断当前节点是否符合搜索树条件判断其左右子树是否符合条件需要初始化两个边界值供比对AC代码:/** * Definition for a bina原创 2021-11-30 23:51:21 · 2355 阅读 · 0 评论 -
543. 二叉树的直径
543. 二叉树的直径:题目链接 :543. 二叉树的直径题目:给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。思路:1、递归计算,划分子问题为:左子树的最长路径右子树的最长路径经过当前根节点的最长路径(左子树深度+右子树深度)明确递归子问题后,我们分别对三个子问题进行求解,注意这里我们使用了在线算法:即将递归子问题中得到的变量与一个维护的全局变量进行比对,保留二者中符合条件的。还要原创 2021-11-30 23:49:41 · 2413 阅读 · 0 评论 -
105. 从前序与中序遍历序列构造二叉树
105. 从前序与中序遍历序列构造二叉树:题目链接 :105. 从前序与中序遍历序列构造二叉树题目:给定一棵树的前序遍历 preorder 与中序遍历 inorder。请构造二叉树并返回其根节点。思路:1、递归函数:根据前序和中序遍历规律,首先找到根节点,从而判断左右子树的边界在数组对应左右子树的范围内递归不断寻找根节点为了减少每次寻找根节点的时空开销,将节点放入HashMap,需要其作为根节点出现时getAC代码: /** * Definition原创 2021-11-30 23:46:28 · 2298 阅读 · 0 评论 -
104. 二叉树的最大深度
104. 二叉树的最大深度:题目链接 :104. 二叉树的最大深度题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。思路:1、迭代:这道题递归比迭代效率高经典的带二叉树层次遍历带深度模板,easyAC代码: /** * Definition for a binary tree node. * public class TreeNode { * int val; *原创 2021-11-30 23:34:25 · 2289 阅读 · 0 评论 -
236. 二叉树的最近公共祖先
236. 二叉树的最近公共祖先:题目链接 :[199. 二叉树的右视图](https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/题目:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”思路:1、递归:前序遍历原创 2021-11-30 23:22:38 · 2289 阅读 · 0 评论 -
199. 二叉树的右视图
199. 二叉树的右视图:题目链接 :199. 二叉树的右视图题目:给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值思路:1、BFS(层序):记录每层最后一个元素,加入集合,层序为根左2、DFS(递归):先右后左,保证每层先访问右节点。AC代码:BFS class Solution { private List<Integer> ans = new ArrayList<>();原创 2021-11-30 23:18:03 · 2804 阅读 · 0 评论 -
103. 二叉树的锯齿形层序遍历
103. 二叉树的锯齿形层序遍历:题目链接 :103. 二叉树的锯齿形层序遍历题目:给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。思路:1、BFS:在102的基础上增加了层数值的判断:奇数层自左向右遍历层值偶数自右向左AC代码:BFS /** * Definition for a binary tree node. * public class TreeNode { *原创 2021-11-30 23:09:39 · 2390 阅读 · 0 评论 -
1038. 把二叉搜索树转换为累加树
1038. 把二叉搜索树转换为累加树:题目链接 :1038. 把二叉搜索树转换为累加树题目:给定一个二叉搜索树,请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。思路:1、反中序遍历,找比当前节点大的值,进行加的累AC代码: /** * Definition for a binary tree原创 2021-10-29 14:56:28 · 6364 阅读 · 0 评论 -
538. 把二叉搜索树转换为累加树
538. 把二叉搜索树转换为累加树:题目链接 :538. 把二叉搜索树转换为累加树题目:给定一个二叉搜索树,请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。思路:1、反中序遍历,找比当前节点大的值,进行加的累AC代码: /** * Definition for a binary tree n原创 2021-10-29 14:54:09 · 6712 阅读 · 0 评论 -
285. 二叉搜索树中的中序后继
285. 二叉搜索树中的中序后继:题目链接 :285. 二叉搜索树中的中序后继题目:给定一棵二叉搜索树和其中的一个节点 p ,找到该节点在树中的中序后继。如果节点没有中序后继,请返回 null 。节点 p 的后继是值比 p.val 大的节点中键值最小的节点,即按中序遍历的顺序节点 p 的下一个节点。思路:1、DFS(1)从根节点开始遍历(2)分别在左子树和右子树进行搜索(3)找到第一个大于节点元素的节点AC代码: /** * Definition for a原创 2021-10-29 14:50:11 · 2643 阅读 · 0 评论 -
97. 递增顺序搜索树
97. 递增顺序搜索树:题目链接 :97. 递增顺序搜索树题目:给你一棵二叉搜索树,请 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。思路:1、非递归变换(1) 先DFS到最左叶子节点(2) 再将左子树元素倒序出队列入集合,再遍历右子树(3) 将集合中存储的节点进行变换,左子树遍历过了所以置空,当前节点变为前一个节点的右子树AC代码: /** * Definition for a b原创 2021-10-29 14:46:04 · 2566 阅读 · 0 评论 -
124. 二叉树中的最大路径和
124. 二叉树中的最大路径和:题目链接 :124. 二叉树中的最大路径和题目:路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给定一个二叉树的根节点 root ,返回其 最大路径和,即所有路径上节点值之和的最大值。思路:1、递归子函数的步骤(1) 计算每个节点为父节点的最大贡献值(2) 寻找最大路径和AC代码:原创 2021-10-28 22:45:11 · 2594 阅读 · 0 评论 -
437. 路径总和 III
437. 路径总和 III:题目链接 :437. 路径总和 III题目:给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。思路:1、DFS+前缀和(1) 前缀和问题需要知道终点,为了规定一个确切终点,以cur为终点,我们规定s(k)为k及k之前节点的前缀和。(2) 如果root到cur间存在前缀和s(cu原创 2021-10-28 22:41:16 · 2527 阅读 · 0 评论 -
129. 求根节点到叶节点数字之和
129. 求根节点到叶节点数字之和:题目链接 :129. 求根节点到叶节点数字之和题目:给定一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。每条从根节点到叶节点的路径都代表一个数字:例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。计算从根节点到叶节点生成的 所有数字之和 。叶节点 是指没有子节点的节点。思路:1、DFS(1) 因为目的是获得最终的数字和,所以要先到叶子节点处(2) 遍历每个节点,是叶子的进行计算原创 2021-10-28 22:34:26 · 2570 阅读 · 0 评论 -
297. 二叉树的序列化与反序列化
297. 二叉树的序列化与反序列化:题目链接 :297. 二叉树的序列化与反序列化题目:序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。思路:1、DFS(1) 序列化:深度优先遍历:即按每一层原创 2021-10-28 22:21:03 · 2492 阅读 · 0 评论 -
814. 二叉树剪枝
814. 二叉树剪枝:题目链接 :814. 二叉树剪枝题目:给定一个二叉树 根节点 root ,树的每个节点的值要么是 0,要么是 1。请剪除该二叉树中所有节点的值为 0 的子树。节点 node 的子树为 node 本身,以及所有 node 的后代。思路:1、递归树的根,左,右侧2、对值不为1的,置为null来达到剪枝目的AC代码:/** * Definition for a binary tree node. * public class TreeNode { * i原创 2021-10-28 22:15:20 · 3080 阅读 · 0 评论 -
347. 前 K 个高频元素
347. 前 K 个高频元素:题目链接 :347. 前 K 个高频元素题目:给定一个整数数组 nums 和一个整数 k ,请返回其中出现频率前 k 高的元素。可以按 任意顺序 返回答案。思路:1、使用优先队列构建小顶堆AC代码:class Solution { public int[] topKFrequent(int[] nums, int k) { /** 使用Hash中的字典来记录每个数字在数组中出现的次数。原创 2021-10-27 23:31:18 · 2512 阅读 · 1 评论 -
199. 二叉树的右视图
199. 二叉树的右视图:题目链接 :199. 二叉树的右视图题目:给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。思路:1、BFS(1)广度优先:对树的每层进行根-左-右的顺序遍历存入队列(2)那么每层最后一个入队的元素就是我们需要的最右元素(3)进行N层遍历,N==队列.size()2、DFS(1)深度优先:依照根右左的顺序遍历,保证右子树先入队(2)设定深度值,即标识当前层数(3)又因为保证了根左右的顺序,所以我原创 2021-10-25 23:14:33 · 2533 阅读 · 0 评论 -
513. 找树左下角的值
513. 找树左下角的值:题目链接 :513. 找树左下角的值题目:给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。假设二叉树中至少有一个节点。思路:1、利用队列先进先出2、层序遍历,按照先右后左顺序3、队列中最后剩下的为最树最下层最左侧元素AC代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode原创 2021-10-24 22:53:08 · 2501 阅读 · 0 评论 -
515. 在每个树行中找最大值
515. 在每个树行中找最大值:题目链接 :515. 在每个树行中找最大值值题目:给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。思路:1、层序遍历:找出树的层数,每层内元素比较。2、对每个元素进行从左到右,从上到下遍历。3、比较并储存每层最大元素。AC代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode lef原创 2021-10-24 22:50:55 · 2488 阅读 · 0 评论 -
85. 最大矩形
85. 最大矩形:题目链接 :[85. 最大矩形]https://leetcode-cn.com/problems/maximal-rectangle/)题目:给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。思路:1、把每列看成一个矩阵的高,对每列进行高度累加,每行为一个周期。2、 每列中后续元素中只要出现0,整行归零。AC代码:class Solution { public int maximalRect原创 2021-10-18 22:24:48 · 2458 阅读 · 0 评论