- 博客(463)
- 资源 (2)
- 收藏
- 关注
原创 Leetcode--Java--713. 乘积小于 K 的子数组
题目描述给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。样例描述示例 1:输入:nums = [10,5,2,6], k = 100输出:8解释:8 个乘积小于 100 的子数组分别为:[10]、[5]、[2],、[6]、[10,5]、[5,2]、[2,6]、[5,2,6]。需要注意的是 [10,5,2] 并不是乘积小于 100 的子数组。示例 2:输入:nums = [1,2,3], k = 0输出:0思路滑动窗
2022-05-05 19:45:52
942
原创 Leetcode--Java--937. 重新排列日志文件
题目描述样例描述示例 1:输入:logs = ["dig1 8 1 5 1","let1 art can","dig2 3 6","let2 own kit dig","let3 art zero"]输出:["let1 art can","let3 art zero","let2 own kit dig","dig1 8 1 5 1","dig2 3 6"]解释:字母日志的内容都不同,所以顺序为 "art can", "art zero", "own kit dig" 。数字日志保留原来的
2022-05-03 19:47:15
654
原创 Leetcode--Java--6. Z 字形变换
题目描述样例描述思路标记变量巧用 + 模拟行索引变化所给字符串时按Z字型存储的,转换成按指定行的字符串,不难看出,行索引的变化是从0到numRows - 1,然后再变化到0,又到…反复进行的变化的时刻就是第一行和最后一行,此处可以用变量flag来处理递增时,行数加一,递减时,行数减一,因此flag可以设置为1,然后到第一行或者最后一行时将flag取反即可可以提前开好每一行的存储(这里用StringBuilder很方便),然后统一放到一个list里面最后将每一行的结果拼接在一起就是最终答
2022-04-27 20:33:52
993
原创 Leetcode--Java--417. 太平洋大西洋水流问题
题目描述有一个 m × n 的矩形岛屿,与 太平洋 和 大西洋 相邻。 “太平洋” 处于大陆的左边界和上边界,而 “大西洋” 处于大陆的右边界和下边界。这个岛被分割成一个由若干方形单元格组成的网格。给定一个 m x n 的整数矩阵 heights , heights[r][c] 表示坐标 (r, c) 上单元格 高于海平面的高度 。岛上雨水较多,如果相邻单元格的高度 小于或等于 当前单元格的高度,雨水可以直接向北、南、东、西流向相邻单元格。水可以从海洋附近的任何单元格流入海洋。返回 网格坐标 res
2022-04-27 19:18:35
889
原创 Leetcode--Java--396. 旋转函数
题目描述给定一个长度为 n 的整数数组 nums假设 arrk 是数组 nums 顺时针旋转 k 个位置后的数组,我们定义 nums 的 旋转函数 F 为:F(k) = 0 * arrk[0] + 1 * arrk[1] + … + (n - 1) * arrk[n - 1]返回 F(0), F(1), …, F(n-1)中的最大值 。生成的测试用例让答案符合 32 位 整数。样例描述思路找规律 + 递推仔细看任意相邻两组之前如何变化的,除了最后一个位置的数,其余位置都是系数加上1。
2022-04-22 14:56:29
705
原创 Leetcode--Java--168. Excel表列名称
题目描述样例描述示例 1:输入:columnNumber = 1输出:"A"示例 2:输入:columnNumber = 28输出:"AB"示例 3:输入:columnNumber = 701输出:"ZY"思路带偏移的进制转换一般的进制转换,直接按照不断取模,然后不断除以进制即可。但是本题有映射关系1-A, 2-B…显然是从1开始的,所以转换前要做一个整体偏移代码class Solution { public String convertToTitle(
2022-04-19 13:59:55
411
原创 Leetcode--Java--819. 最常见的单词
题目描述给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。返回出现次数最多,同时不在禁用列表中的单词。题目保证至少有一个词不在禁用列表中,而且答案唯一。禁用列表中的单词用小写字母表示,不含标点符号。段落中的单词不区分大小写。答案都是小写字母。样例描述思路经典双指针截取出单词,判断如果在banned里面就忽略,否则记录次数并且更新答案不要直接用split,因为有各种符合代码class Solution { public String mostComm
2022-04-17 14:06:01
218
原创 Leetcode--Java--135. 分发糖果
题目描述n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。样例描述示例 1:输入:ratings = [1,0,2]输出:5解释:你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。示例 2:输入:ratings = [1,2,2]输出:4解释:你可以分别给第一个、
2022-04-13 20:36:19
543
原创 Leetcode--Java--572. 另一棵树的子树
题目描述给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。样例描述思路递归看左子树是否是子树,右子树是否是子树,或者两个树是否相同,这三种情况只要有一种就符合子树要求代码/** * Definition for a binary tree no
2022-04-09 20:36:24
799
原创 Leetcode--Java--75. 颜色分类
题目描述给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。必须在不使用库的sort函数的情况下解决这个问题。样例描述示例 1:输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]示例 2:输入:nums = [2,0,1]输出:[0,1,2]思路荷兰国旗问题 + 三指针用三个指针来划分区间,0在j的左
2022-04-08 20:19:46
845
原创 Leetcode--Java--剑指 Offer 62. 圆圈中最后剩下的数字
题目描述0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。样例描述示例 1:输入: n = 5, m = 3输出: 3示例 2:输入: n = 10, m = 17输出: 2思路逆推法 + 画图模拟下标映射变化约瑟夫环问题最后存
2022-04-08 17:16:05
716
原创 Leetcode--Java--7. 整数反转
题目描述给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。样例描述示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0思路处理溢出 + 数学 + 不借助栈实现推入和弹出不借助栈实
2022-04-04 21:33:57
1105
原创 Leetcode--Java--剑指 Offer 51. 数组中的逆序对
题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。样例描述示例 1:输入: [7,5,6,4]输出: 5思路归并排序 + 分支思想在归并排序的过程中统计逆序对的数量,如下是递归排序的过程总共的逆序对数量等于 左边的逆序对 + 右边的逆序对 + 左右结合的时候形成的逆序对在两边都排好序后,左边某个值如果大于右边,则该值一直到左边端点都会大于右边这个值先进行左右两边的统计,在统计中间递归排序要借助辅助
2022-04-04 13:57:17
910
原创 Leetcode--Java--剑指 Offer 40. 最小的k个数
题目描述输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。样例描述示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0]思路快速选择排序 O(n) + top问题没必要整个都排序,直接排序找到前topk小的即可。因此可以用快速选择排序,每次根据划分点分段进行查找,本题与这题雷同复制指定
2022-04-03 20:16:32
480
原创 Leetcode--Java--6035. 选择建筑的方案数 (周赛T3)
题目描述给你一个下标从 0 开始的二进制字符串 s ,它表示一条街沿途的建筑类型,其中:s[i] = ‘0’ 表示第 i 栋建筑是一栋办公楼,s[i] = ‘1’ 表示第 i 栋建筑是一间餐厅。作为市政厅的官员,你需要随机 选择 3 栋建筑。然而,为了确保多样性,选出来的 3 栋建筑 相邻 的两栋不能是同一类型。比方说,给你 s = “001101” ,我们不能选择第 1 ,3 和 5 栋建筑,因为得到的子序列是 “011” ,有相邻两栋建筑是同一类型,所以 不合 题意。请你返回可以选择 3 栋
2022-04-03 13:59:14
659
原创 Leetcode--Java--470. 用 Rand7() 实现 Rand10()
题目描述给定方法 rand7 可生成 [1,7] 范围内的均匀随机整数,试写一个方法 rand10 生成 [1,10] 范围内的均匀随机整数。你只能调用 rand7() 且不能调用其他方法。请不要使用系统的 Math.random() 方法。每个测试用例将有一个内部参数 n,即你实现的函数 rand10() 在测试时将被调用的次数。请注意,这不是传递给 rand10() 的参数。样例描述示例 1:输入: 1输出: [2]示例 2:输入: 2输出: [2,8]示例 3:输入: 3
2022-04-02 21:09:17
685
原创 Leetcode--Java--547. 省份数量
题目描述有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。返回矩阵中 省份 的数量。样例描述思路图论 + 连通
2022-03-30 20:29:32
889
原创 Leetcode--Java--797. 所有可能的路径
题目描述给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序)graph [i] 是一个从节点 i 可以访问的所有节点的列表(即从节点 i 到节点 graph[i][j] 存在一条有向边样例描述思路图的遍历 + DFS爆搜有向无环图(不需要vis存储已经遍历的结点)直接dfs进行图的遍历即可,注意先加入初始0结点代码class Solution { int g[][]; List<List<
2022-03-28 21:46:37
707
原创 Leetcode--Java--752. 打开转盘锁
题目描述你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,‘0’ 变为 ‘9’ 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 ‘0000’ ,一个代表四个拨轮的数字的字符串。列表 deadends 包含了一组死亡数字,一旦拨轮的数字和列表里的任何一个元素相同,这个锁将会被永久锁定,无法再被旋转。字符串 target 代表可以解锁的
2022-03-28 21:14:56
782
原创 Leetcode--Java--542. 01 矩阵
题目描述给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。两个相邻元素间的距离为 1 。样例描述思路多源BFS (多源最短路问题)+ 图论思想从图论的角度来考虑本题,假设只有一个0,则相当于求每个点到0的距离,可以用bfs从0位置开始向四周扩散,依次距离加一,直到扫描完所有的结点。(设置一个访问数组,访问过的就标记)在1的基础上拓展, 如果是多个0,可以将这些0全部看成一个整体(难以理解的话,也可以想象成有
2022-03-27 23:16:51
812
原创 Leetcode--Java--785. 判断二分图
题目描述样例描述思路染色法 (DFS + 递归 / BFS )一个图是二分图等价于图可以被二染色等价于图中不含有奇数环染色法的思路:图的存储最常用是链式前向星,参考这里,本题就用二维数组存储图即可代码dfs + 递归思想class Solution { int g[][]; int vis[]; public boolean isBipartite(int[][] graph) { int n = graph.length;
2022-03-27 21:29:11
1026
原创 Leetcode--Java--926. 将字符串翻转到单调递增
题目描述如果一个由 ‘0’ 和 ‘1’ 组成的字符串,是以一些 ‘0’(可能没有 ‘0’)后面跟着一些 ‘1’(也可能没有 ‘1’)的形式组成的,那么该字符串是单调递增的。我们给出一个由字符 ‘0’ 和 ‘1’ 组成的字符串 S,我们可以将任何 ‘0’ 翻转为 ‘1’ 或者将 ‘1’ 翻转为 ‘0’。返回使 S 单调递增的最小翻转次数。样例描述示例 1:输入:s = "00110"输出:1解释:我们翻转最后一位得到 00111.示例 2:输入:s = "010110"输出:2解释
2022-03-23 21:32:14
615
原创 Leetcode--Java--剑指 Offer II 091. 粉刷房子
题目描述假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n x 3 的正整数矩阵 costs 来表示的。例如,costs[0][0] 表示第 0 号房子粉刷成红色的成本花费;costs[1][2] 表示第 1 号房子粉刷成绿色的花费,以此类推。请计算出粉刷完所有房子最少的花费成本。样例
2022-03-23 21:03:49
194
原创 Leetcode--Java--528. 按权重随机选择
题目描述给你一个 下标从 0 开始 的正整数数组 w ,其中 w[i] 代表第 i 个下标的权重。请你实现一个函数 pickIndex ,它可以 随机地 从范围 [0, w.length - 1] 内(含 0 和 w.length - 1)选出并返回一个下标。选取下标 i 的 概率 为 w[i] / sum(w) 。例如,对于 w = [1, 3],挑选下标 0 的概率为 1 / (1 + 3) = 0.25 (即,25%),而选取下标 1 的概率为 3 / (1 + 3) = 0.75(即,75%)
2022-03-18 22:12:55
620
原创 Leetcode--Java--1122. 数组的相对排序
题目描述给你两个数组,arr1 和 arr2,arr2 中的元素各不相同,arr2 中的每个元素都出现在 arr1 中。对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。样例描述示例 1:输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]输出:[2,2,2,1,4,3,3,9,6,7,19]示例 2:输入:arr1 =
2022-03-18 19:53:50
598
原创 Leetcode--Java--875. 爱吃香蕉的珂珂
题目描述珂珂喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 H 小时后回来。珂珂可以决定她吃香蕉的速度 K (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 K 根。如果这堆香蕉少于 K 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。返回她可以在 H 小时内吃掉所有香蕉的最小速度 K(K 为整数)。样例描述示例 1:输入: piles = [3,6,7,11], H
2022-03-16 21:35:53
840
原创 Leetcode--Java--540. 有序数组中的单一元素
题目描述给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。请你找出并返回只出现一次的那个数。你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。样例描述示例 1:输入: nums = [1,1,2,3,3,4,4,8,8]输出: 2示例 2:输入: nums = [3,3,7,7,10,11,11]输出: 10思路二分思想 + 小技巧(脑筋急转弯)代码...
2022-03-16 19:28:26
909
原创 Leetcode--Java--852. 山脉数组的峰顶索引
题目描述样例描述示例 1:输入:arr = [0,1,0]输出:1示例 2:输入:arr = [0,2,1,0]输出:1示例 3:输入:arr = [0,10,5,2]输出:1示例 4:输入:arr = [3,4,5,1]输出:2思路二段性分析 + 二分本质本题说明二分不一定要有单调性,本质是二段思想,找出满足能将原来的数划分成两种情况类比搜索旋转排序数组,其实就是找到两端分界的位置,左边的规律是上升,当前数会大于前一个数代码class Solution
2022-03-14 22:01:54
775
原创 Leetcode--Java--677. 键值映射
题目描述样例描述示例 1:输入:["MapSum", "insert", "sum", "insert", "sum"][[], ["apple", 3], ["ap"], ["app", 2], ["ap"]]输出:[null, null, 3, null, 5]解释:MapSum mapSum = new MapSum();mapSum.insert("apple", 3); mapSum.sum("ap"); // 返回 3 (apple = 3)m
2022-03-14 20:43:48
816
原创 Leetcode--Java--820. 单词的压缩编码
题目描述样例描述思路方法一:存储后缀 + 哈希去重如果一个单词不是任何其他单词的后缀,那么它就是最短的编码。反之,是的话可以删除。首先全部加入Set集合去重,对于每个单词,结合数据范围,依次在set里面删除它们所有的后缀。剩余的就是可编码的单词。加上1(#字符)的长度就是答案方法二:排序 + 字典树在方法一的基础上,可以把所有单词逆序挂在trie树上(方便查找后缀),在不断插入到树中,如果是新的单词,就需要编码为长度加一,否则直接用树上的不需要编码注意要让长的单词先插入,如果短的先插入
2022-03-14 11:30:58
1572
原创 Leetcode--Java--676. 实现一个魔法字典
题目描述样例描述思路字典树 前缀树 trie 暴力做法构建字典树,对于每个字符,枚举修改成a~z,除了本身,看新的字符串是否在trie中存在代码class MagicDictionary { class TrieNode { TrieNode tns[] = new TrieNode[26]; boolean isWord; public TrieNode(){ } }
2022-03-13 21:04:58
631
原创 Leetcode--Java--648. 单词替换
题目描述在英语中,我们有一个叫做 词根(root) 的概念,可以词根后面添加其他一些词组成另一个较长的单词——我们称这个词为 继承词(successor)。例如,词根an,跟随着单词 other(其他),可以形成新的单词 another(另一个)。现在,给定一个由许多词根组成的词典 dictionary 和一个用空格分隔单词形成的句子 sentence。你需要将句子中的所有继承词用词根替换掉。如果继承词有许多可以形成它的词根,则用最短的词根替换它。你需要输出替换之后的句子。样例描述示例 1:输
2022-03-13 19:36:30
801
原创 Leetcode--Java--494. 目标和
题目描述给你一个整数数组 nums 和一个整数 target 。向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 :例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “+2-1” 。返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。样例描述示例 1:输入:nums = [1,1,1,1,1], target = 3输出:5解释:一共有 5 种方法让最
2022-03-10 21:59:21
193
原创 Leetcode--Java--617. 合并二叉树
题目描述给你两棵二叉树: root1 和 root2 。想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。返回合并后的二叉树。注意: 合并过程必须从两个树的根节点开始。样例描述思路递归 + 创建新的结点root1为空返回root2,反之返回root1返回的拼接到新的树上面递归 +
2022-03-10 21:07:22
189
原创 Leetcode--Java--416. 分割等和子集
题目描述给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。样例描述示例 1:输入:nums = [1,5,11,5]输出:true解释:数组可以分割成 [1, 5, 5] 和 [11] 。示例 2:输入:nums = [1,2,3,5]输出:false解释:数组不能分割成两个元素和相等的子集。思路01背包问题二维表示。f[i][j]表示从前i个数中选若干数,这些数是否刚好凑成j分两种情况:凑成或者凑不
2022-03-10 19:39:58
344
原创 Leetcode--Java--406. 根据身高重建队列
题目描述假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。请你重新构造并返回输入数组 people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。样例描述思路贪心 + 套路排序 (排序 + 插队)
2022-03-09 21:41:28
352
原创 Leetcode--Java--399. 除法求值
题目描述样例描述思路图论 + Floyd转化为图论的问题:给一个有向图,求任意两点之间的距离。题意说明没有矛盾,说明每两个点之间的距离是唯一的。Floyd就是求两个点之间的最短距离,本题就是距离在这里插入图片描述代码class Solution { public double[] calcEquation(List<List<String>> equations, double[] values, List<List<String>>
2022-03-09 21:23:01
233
原创 Leetcode--Java--538. 把二叉搜索树转换为累加树
题目描述给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。样例描述思路反向中序遍历 + BST + (逆向思维)后缀和思想先考虑数组的情况,可以从右到左遍历,维护后缀和。当前位置就是后缀和 + 当前的值
2022-03-09 20:31:07
437
原创 Leetcode--Java--897. 递增顺序搜索树
题目描述给你一棵二叉搜索树的 root ,请你 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。样例描述思路中序遍历 递归/ 迭代在中序遍历中维护尾结点即可,单独记录一个尾结点,由于头结点可能空也可能不空,创建一个虚拟头结点代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * Tree
2022-03-09 19:45:52
346
原创 Leetcode--Java--814. 二叉树剪枝
题目描述给你二叉树的根结点 root ,此外树的每个结点的值要么是 0 ,要么是 1 。返回移除了所有不包含 1 的子树的原二叉树。节点 node 的子树为 node 本身加上所有 node 的后代。样例描述思路递归依据题目意思,递归检查左右子树是否包含1(返回布尔值),以及当前结点值。左右子树不包含的话,就剪枝,设置为null代码/** * Definition for a binary tree node. * public class TreeNode { * i
2022-03-07 21:10:05
371
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人