![](https://img-blog.csdnimg.cn/direct/696dc8d3a178418d8793f1aafbe02ceb.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
力扣算法题目解析
力扣算法题目解析, 主要包括在中等难度和部分高难度题目的解析。请大家多多关注。
抖音上游泳的鱼
程序员
展开
-
Leetcode 力扣 128. 最长连续序列 (抖音号:708231408)
找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。(抖音号:708231408)请你设计并实现时间复杂度为。给定一个未排序的整数数组。原创 2024-06-23 08:50:32 · 313 阅读 · 0 评论 -
Leetcode 力扣 125. 验证回文串 (抖音号:708231408)
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个。"amanaplanacanalpanama" 是回文串。在移除非字母数字字符之后,s 是一个空字符串 ""。由于空字符串正着反着读都一样,所以是回文串。"raceacar" 不是回文串。字母和数字都属于字母数字字符。(抖音号:708231408)原创 2024-06-23 08:49:31 · 416 阅读 · 0 评论 -
Leetcode 力扣124. 二叉树中的最大路径和 (抖音号:708231408)
被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中。最优路径是 15 -> 20 -> 7 ,路径和为 15 + 20 + 7 = 42。最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6。(抖音号:708231408)节点,且不一定经过根节点。是路径中各节点值的总和。给你一个二叉树的根节点。原创 2024-06-17 08:32:22 · 414 阅读 · 0 评论 -
Leetcode 力扣122. 买卖股票的最佳时机 II (抖音号:708231408)
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0。原创 2024-06-17 08:30:57 · 274 阅读 · 0 评论 -
Leetcode 力扣121. 买卖股票的最佳时机 (抖音号:708231408)
在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回。设计一个算法来计算你所能获取的最大利润。在这种情况下, 没有交易完成, 所以最大利润为 0。(抖音号:708231408)买入这只股票,并选择在。原创 2024-06-15 07:59:57 · 419 阅读 · 0 评论 -
Leetcode 力扣120. 三角形最小路径和 (抖音号:708231408)
自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。也就是说,如果正位于当前行的下标。每一步只能移动到下一行中相邻的结点上。,那么下一步可以移动到下一行的下标。,找出自顶向下的最小路径和。(抖音号:708231408)原创 2024-06-15 07:49:23 · 425 阅读 · 0 评论 -
Leetcode 力扣119. 杨辉三角 II (抖音号:708231408)
在「杨辉三角」中,每个数是它左上方和右上方的数的和。(抖音号:708231408),返回「杨辉三角」的第。你可以优化你的算法到。原创 2024-06-14 04:39:00 · 405 阅读 · 0 评论 -
Leetcode 力扣118. 杨辉三角 (抖音号:708231408)
在「杨辉三角」中,每个数是它左上方和右上方的数的和。生成「杨辉三角」的前 numRows。给定一个非负整数 numRows。(抖音号:708231408)原创 2024-06-14 04:38:55 · 505 阅读 · 0 评论 -
Leetcode 力扣117. 填充每个节点的下一个右侧节点指针 II (抖音号:708231408)
给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点,如图 B 所示。序列化输出按层序遍历顺序(由 next 指针连接),'#' 表示每层的末尾。填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为。初始状态下,所有 next 指针都被设置为。(抖音号:708231408)原创 2024-06-12 10:51:35 · 679 阅读 · 0 评论 -
Leetcode 力扣116. 填充每个节点的下一个右侧节点指针 (抖音号:708231408)
给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点,如图 B 所示。序列化的输出按层序遍历排列,同一层节点由 next 指针连接,'#' 标志着每一层的结束。填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为。,其所有叶子节点都在同一层,每个父节点都有两个子节点。初始状态下,所有 next 指针都被设置为。(抖音号:708231408)原创 2024-06-12 10:51:27 · 421 阅读 · 0 评论 -
Leetcode 力扣114. 二叉树展开为链表 (抖音号:708231408)
给你二叉树的根结点root,请你将它展开为一个单链表:展开后的单链表应该同样使用TreeNode,其中right子指针指向链表中下一个结点,而左子指针始终为null。展开后的单链表应该与二叉树先序遍历顺序相同。原创 2024-06-10 13:49:23 · 342 阅读 · 0 评论 -
Leetcode 力扣113. 路径总和 II (抖音号:708231408)
路径总和等于给定目标和的路径。(抖音号:708231408)是指没有子节点的节点。原创 2024-06-10 13:48:06 · 386 阅读 · 0 评论 -
Leetcode 力扣 112. 路径总和 (抖音号:708231408)
不存在 sum = 5 的根节点到叶子节点的路径。由于树是空的,所以不存在根节点到叶子节点的路径。的路径,这条路径上所有节点值相加等于目标和。等于目标和的根节点到叶节点路径如上图所示。(1 --> 2): 和为 3。(1 --> 3): 和为 4。(抖音号:708231408)和一个表示目标和的整数。是指没有子节点的节点。原创 2024-06-09 12:28:14 · 490 阅读 · 1 评论 -
Leetcode 力扣109. 有序链表转换二叉搜索树 (抖音号:708231408)
一个可能的答案是[0,-3,9,-10,null,5],它表示所示的高度平衡的二叉搜索树。(抖音号:708231408)给定一个单链表的头节点。原创 2024-06-09 12:24:41 · 334 阅读 · 2 评论 -
Leetcode 力扣108. 代码测试用例测试结果测试结果108. 将有序数组转换为二叉搜索树 (抖音号:708231408)
1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。(抖音号:708231408)排列,请你将其转换为一棵。原创 2024-06-05 14:48:27 · 303 阅读 · 2 评论 -
Leetcode 力扣107. 二叉树的层序遍历 II (抖音号:708231408)
(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)(抖音号:708231408)原创 2024-06-05 14:45:23 · 338 阅读 · 0 评论 -
Leetcode 力扣106. 从中序与后序遍历序列构造二叉树 (抖音号:708231408)
是同一棵树的后序遍历,请你构造并返回这颗。(抖音号:708231408)是二叉树的中序遍历,原创 2024-05-31 09:53:16 · 431 阅读 · 0 评论 -
Leetcode 力扣105. 从前序与中序遍历序列构造二叉树 (抖音号:708231408)
请构造二叉树并返回其根节点。(抖音号:708231408)原创 2024-05-31 09:49:47 · 484 阅读 · 1 评论 -
Leetcode 力扣103. 二叉树的锯齿形层序遍历 (抖音号:708231408)
(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。(抖音号:708231408)原创 2024-05-26 16:02:03 · 365 阅读 · 0 评论 -
Leetcode 力扣102. 二叉树的层序遍历 (抖音号:708231408)
(即逐层地,从左到右访问所有节点)。(抖音号:708231408)原创 2024-05-26 16:01:17 · 319 阅读 · 0 评论 -
Leetcode 力扣99. 恢复二叉搜索树 (抖音号:708231408)
2 不能在 3 的右子树中,因为 2 < 3。交换 2 和 3 使二叉搜索树有效。3 不能是 1 的左孩子,因为 3 > 1。交换 1 和 3 使二叉搜索树有效。请在不改变其结构的情况下,恢复这棵树。(抖音号:708231408)两个节点的值被错误地交换。给你二叉搜索树的根节点。原创 2024-05-25 13:25:45 · 269 阅读 · 0 评论 -
Leetcode 力扣98. 验证二叉搜索树 (抖音号:708231408)
根节点的值是 5 ,但是右子节点的值是 4。,判断其是否是一个有效的二叉搜索树。(抖音号:708231408)给你一个二叉树的根节点。原创 2024-05-25 13:22:56 · 281 阅读 · 0 评论 -
Leetcode 力扣97. 交错字符串 (抖音号:708231408)
的定义与过程如下,其中每个字符串都会被分割成若干。(抖音号:708231408)原创 2024-05-24 16:45:08 · 599 阅读 · 0 评论 -
Leetcode 力扣96. 不同的二叉搜索树 (抖音号:708231408)
返回满足题意的二叉搜索树的种数。(抖音号:708231408)个节点组成且节点值从。原创 2024-05-24 16:44:55 · 452 阅读 · 0 评论 -
Leetcode 力扣95. 不同的二叉搜索树 II (抖音号:708231408)
(抖音号:708231408),请你生成并返回所有由。个节点组成且节点值从。原创 2024-05-23 16:26:40 · 522 阅读 · 0 评论 -
Leetcode 力扣93. 复原IP地址 (抖音号:708231408)
用以表示一个 IP 地址,返回所有可能的。正好由四个整数(每个整数位于。(抖音号:708231408)之间组成,且不能含有前导。给定一个只包含数字的字符串。,这些地址可以通过在。原创 2024-05-23 16:24:31 · 325 阅读 · 0 评论 -
Leetcode 力扣92. 反转链表 II (抖音号:708231408)
给你单链表的头指针head和两个整数left和right,其中left原创 2024-05-21 14:48:03 · 653 阅读 · 0 评论 -
Leetcode 力扣91. 解码方法(抖音号:708231408)
它可以解码为 "BZ" (2 26), "VF" (22 6), 或者 "BBF" (2 2 6)。已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。它可以解码为 "AB"(1 2)或者 "L"(12)。(抖音号:708231408)的消息通过以下映射进行了。题目数据保证答案肯定是一个。注意,消息不能分组为。原创 2024-05-21 14:47:29 · 491 阅读 · 0 评论 -
Leetcode 力扣90. 子集 II (抖音号:708231408)
其中可能包含重复元素,请你返回该数组所有可能的。返回的解集中,子集可以按。(抖音号:708231408)原创 2024-05-20 14:58:29 · 297 阅读 · 0 评论 -
Leetcode 力扣89. 格雷编码 (抖音号:708231408)
0,2,3,1] 也是一个有效的格雷码序列,其二进制表示是 [00,10,11,01]。[0,1,3,2] 的二进制表示是 [00,01,11,10]。(抖音号:708231408)原创 2024-05-20 14:55:58 · 395 阅读 · 0 评论 -
Leetcode 力扣87. 扰乱字符串 (抖音号:708231408)
"g/r / e/at" --> "r/g / e/at" // 随机决定:第一组「交换两个子字符串」,第二组「保持这两个子字符串的顺序不变」"gr/eat" --> "g/r / e/at" // 在子字符串上递归执行此算法。"r/g / e/at" --> "r/g / e/ a/t" // 继续递归执行此算法,将 "at" 分割得到 "a/t""r/g / e/ a/t" --> "r/g / e/ a/t" // 随机决定:「保持这两个子字符串的顺序不变」使用下面描述的算法可以扰乱字符串。原创 2024-05-17 14:53:34 · 397 阅读 · 0 评论 -
Leetcode 力扣86. 分隔链表 (抖音号:708231408)
两个分区中每个节点的初始相对位置。,请你对链表进行分隔,使得所有。给你一个链表的头节点。 (抖音号:708231408)原创 2024-05-17 14:49:23 · 330 阅读 · 0 评论 -
Leetcode 力扣85. 最大矩形(抖音号:708231408)
的二维二进制矩阵,找出只包含。(抖音号:708231408)的最大矩形,并返回其面积。最大矩形如上图所示。原创 2024-05-15 13:07:21 · 287 阅读 · 0 评论 -
Leetcode 力扣84. 柱状图中最大的矩形(抖音号:708231408)
个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。求在该柱状图中,能够勾勒出来的矩形的最大面积。最大的矩形为图中红色区域,面积为 10。(抖音号:708231408)原创 2024-05-15 13:04:11 · 208 阅读 · 0 评论 -
Leetcode 力扣83.删除排序链表中的重复元素 (抖音号:708231408)
删除所有重复的元素,使每个元素只出现一次。(抖音号:708231408)给定一个已排序的链表的头。原创 2024-05-14 16:09:34 · 348 阅读 · 0 评论 -
Leetcode 力扣82.删除排序链表中的重复元素 II (抖音号:708231408)
删除原始链表中所有重复数字的节点,只留下不同的数字。(抖音号:708231408)给定一个已排序的链表的头。原创 2024-05-14 16:09:20 · 318 阅读 · 0 评论 -
Leetcode 力扣81.搜索旋转排序数组 II(抖音号:708231408)
请你编写一个函数来判断给定的目标值是否存在于数组中。已知存在一个按非降序排列的整数数组。你必须尽可能减少整个操作步骤。(抖音号:708231408),数组中的值不必互不相同。在预先未知的某个下标。原创 2024-05-12 12:12:11 · 265 阅读 · 0 评论 -
Leetcode 力扣80. 删除有序数组中的重复项 II (抖音号:708231408)
方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。是以“引用”方式传递的。删除重复出现的元素,使得出现次数超过两次的元素。// 根据你的函数返回的长度, 它会打印出数组中。// 在函数里修改输入数组对于调用者是可见的。为什么返回数值是整数,但输出的答案是数组呢?并在使用 O(1) 额外空间的条件下完成。不需要考虑数组中超出新长度后面的元素。, 并且原数组的前五个元素被修改为。不要使用额外的数组空间,你必须在。(抖音号:708231408),返回删除后数组的新长度。请注意,输入数组是以。原创 2024-05-12 12:09:51 · 567 阅读 · 0 评论 -
Leetcode 力扣79. 单词搜索(抖音号:708231408)
单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。原创 2024-05-11 09:04:33 · 323 阅读 · 0 评论 -
Leetcode 力扣78. 子集(抖音号:708231408)
给你一个整数数组nums,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。你可以按任意顺序返回解集。原创 2024-05-11 09:00:19 · 246 阅读 · 0 评论