Loading

摘要: 543. 二叉树的直径 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 **示例 😗* 给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 * 阅读全文
posted @ 2021-01-17 23:45 反身而诚、 阅读(87) 评论(0) 推荐(0)
摘要: 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的 阅读全文
posted @ 2021-01-17 23:39 反身而诚、 阅读(78) 评论(0) 推荐(0)
摘要: 剑指 Offer 68 - II. 二叉树的最近公共祖先 难度简单178 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以 阅读全文
posted @ 2021-01-17 23:22 反身而诚、 阅读(95) 评论(0) 推荐(0)
摘要: 114. 二叉树展开为链表 给定一个二叉树,原地将它展开为一个单链表。 例如,给定二叉树 1 / \ 2 5 / \ \ 3 4 6 将其展开为: 1 \ 2 \ 3 \ 4 \ 5 \ 6 方法一:递归先序遍历保存进List public void flatten(TreeNode root) { 阅读全文
posted @ 2021-01-17 23:13 反身而诚、 阅读(137) 评论(0) 推荐(0)
摘要: 538. 把二叉搜索树转换为累加树 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下,二叉搜索树满足下列约束条件: 节点的左子树仅包含键 小于 节点键的 阅读全文
posted @ 2021-01-17 23:04 反身而诚、 阅读(70) 评论(0) 推荐(0)
摘要: 230. 二叉搜索树中第K小的元素 难度中等338 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。 说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。 示例 1: 输入: root = [3,1,4,null,2], k = 1 3 阅读全文
posted @ 2021-01-17 22:59 反身而诚、 阅读(90) 评论(0) 推荐(0)
摘要: 剑指 Offer 54. 二叉搜索树的第k大节点 给定一棵二叉搜索树,请找出其中第k大的节点。 示例 1: 输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2 输出: 4 示例 2: 输入: root = [5,3,6,2,4,null,null,1], k 阅读全文
posted @ 2021-01-17 22:52 反身而诚、 阅读(75) 评论(0) 推荐(0)
摘要: 94. 二叉树的中序遍历 难度中等826 给定一个二叉树的根节点 root ,返回它的 中序 遍历。 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 示例 4: 输 阅读全文
posted @ 2021-01-17 22:44 反身而诚、 阅读(92) 评论(0) 推荐(0)
摘要: 98. 验证二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入: 2 / \ 1 3 输出: true 示例 2: 阅读全文
posted @ 2021-01-17 22:34 反身而诚、 阅读(75) 评论(0) 推荐(0)
摘要: 剑指 Offer 55 - II. 平衡二叉树 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回 tr 阅读全文
posted @ 2021-01-17 22:13 反身而诚、 阅读(72) 评论(0) 推荐(0)
摘要: 剑指 Offer 55 - I. 二叉树的深度 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大 阅读全文
posted @ 2021-01-17 22:04 反身而诚、 阅读(71) 评论(0) 推荐(0)
摘要: 617. 合并二叉树 给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。 示例 1: 输入: Tree 1 阅读全文
posted @ 2021-01-17 22:01 反身而诚、 阅读(78) 评论(0) 推荐(0)
摘要: 剑指 Offer 27. 二叉树的镜像 请完成一个函数,输入一个二叉树,该函数输出它的镜像。 例如输入: 4 / \ 2 7 / \ / \ 1 3 6 9 镜像输出: 4 / \ 7 2 / \ / \ 9 6 3 1 示例 1: 输入:root = [4,2,7,1,3,6,9] 输出:[4,7 阅读全文
posted @ 2021-01-17 21:52 反身而诚、 阅读(90) 评论(0) 推荐(0)
摘要: 剑指 Offer 28. 对称的二叉树 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3 阅读全文
posted @ 2021-01-17 21:42 反身而诚、 阅读(97) 评论(0) 推荐(0)
摘要: 347. 前 K 个高频元素 给定一个非空的整数数组,返回其中出现频率前 *k* 高的元素。 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], k = 1 输出: [1] 提示: 你可以假设给定的 k 总是合理 阅读全文
posted @ 2021-01-17 21:05 反身而诚、 阅读(277) 评论(0) 推荐(0)
摘要: 215. 数组中的第K个最大元素 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 示例 2: 输入: [3,2,3,1,2,4,5,5,6] 和 阅读全文
posted @ 2021-01-17 20:05 反身而诚、 阅读(136) 评论(0) 推荐(0)
摘要: 75. 颜色分类 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,**原地**对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 **注意:**请不要使用代码库中的排序函数来解决这道题。 进阶: 你能想出 阅读全文
posted @ 2021-01-17 17:17 反身而诚、 阅读(86) 评论(0) 推荐(0)
摘要: 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 示例: 输入:nums = [1,2,3,4] 输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。 解题 阅读全文
posted @ 2021-01-17 16:17 反身而诚、 阅读(76) 评论(0) 推荐(0)
摘要: 剑指 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 阅读全文
posted @ 2021-01-17 15:55 反身而诚、 阅读(109) 评论(0) 推荐(0)
摘要: 剑指 Offer 65. 不用加减乘除做加法 写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。 示例: 输入: a = 1, b = 1 输出: 2 提示: a, b 均可能是负数或 0 结果不会溢出 32 位整数 解题思路 学过计算机组成原理的都知 阅读全文
posted @ 2021-01-17 15:26 反身而诚、 阅读(98) 评论(0) 推荐(0)
摘要: 剑指 Offer 61. 扑克牌中的顺子 难度简单89 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。 示例 1: 输入: [1,2,3,4,5] 输出: Tru 阅读全文
posted @ 2021-01-17 15:03 反身而诚、 阅读(109) 评论(0) 推荐(0)
摘要: 剑指 Offer 29. 顺时针打印矩阵 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2: 输入:matrix = [[1,2,3,4],[ 阅读全文
posted @ 2021-01-17 14:47 反身而诚、 阅读(88) 评论(0) 推荐(0)
摘要: 剑指 Offer 64. 求1+2+…+n 求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 限制: 1 <= n <= 10000 解题思路 这是一道考验知识储备的题目。高斯小学就告诉我们, 首尾相加乘以 阅读全文
posted @ 2021-01-17 14:35 反身而诚、 阅读(115) 评论(0) 推荐(0)
摘要: 268. 丢失的数字 难度简单361 给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 进阶: 你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题? 示例 1: 输入:nums = [3,0,1] 输出:2 解释:n = 阅读全文
posted @ 2021-01-17 13:55 反身而诚、 阅读(120) 评论(0) 推荐(0)
摘要: 剑指 Offer 53 - II. 0~n-1中缺失的数字 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 示例 1: 输入: [0,1,3] 输出: 2 示例 2: 输入: [0 阅读全文
posted @ 2021-01-17 13:29 反身而诚、 阅读(100) 评论(0) 推荐(0)
摘要: 剑指 Offer 53 - I. 在排序数组中查找数字 I 统计一个数字在排序数组中出现的次数。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例 2: 输入: nums = [5,7,7,8,8,10], target = 6 输出: 0 限 阅读全文
posted @ 2021-01-17 12:03 反身而诚、 阅读(87) 评论(0) 推荐(0)
摘要: 309. 最佳买卖股票时机含冷冻期 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 卖出股票后,你无法在第二天买入 阅读全文
posted @ 2021-01-17 11:41 反身而诚、 阅读(157) 评论(0) 推荐(0)
摘要: 122. 买卖股票的最佳时机 II 难度简单1065 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 **注意:**你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 阅读全文
posted @ 2021-01-17 11:03 反身而诚、 阅读(77) 评论(0) 推荐(0)
摘要: 剑指 Offer 63. 股票的最大利润 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 阅读全文
posted @ 2021-01-17 10:53 反身而诚、 阅读(100) 评论(0) 推荐(0)
摘要: 剑指 Offer 12. 矩阵中的路径 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“b 阅读全文
posted @ 2021-01-17 10:40 反身而诚、 阅读(72) 评论(0) 推荐(0)