- 博客(299)
- 收藏
- 关注
原创 129. 求根节点到叶节点数字之和
因此,数字总和 = 495 + 491 + 40 =因此,数字总和 = 12 + 13 =,树中每个节点都存放有一个。计算从根节点到叶节点生成的。给你一个二叉树的根节点。是指没有子节点的节点。
2024-08-04 15:36:42
297
原创 347. 前 K 个高频元素
思路:统计每个元素出现次数,然后排序,最后输出前k个。很多人会想用字典统计次数,但字典是无序的,你还得先对字典按值进行排序,python提供了一个Counter函数,他会统计一个列表中各个元素出现的次数,并返回一个元组,然后利用most_common函数,它会按照出现频率降序返回一个元组,,请你返回其中出现频率前。
2024-08-01 16:26:50
141
原创 239. 滑动窗口最大值
思路:这道题的暴力解法不难想,每k个元素把最大值放入result,但当k很大的时候,这种方法就会超时了。的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的。那怎么做不超时呢,也就是得把时间复杂度减小到O(n)数量级上。滑动窗口的位置 最大值。滑动窗口每次只向右移动一位。
2024-08-01 15:39:43
174
原创 150. 逆波兰表达式求值
该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6。该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9。返回一个表示表达式值的整数。
2024-08-01 14:43:07
485
原创 15. 三数之和
不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。答案中不可以包含重复的三元组。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。,判断是否存在三元组。
2024-07-31 13:26:50
336
原创 503. 下一个更大元素 II
是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。第二个 1 的下一个最大的数需要循环搜索,结果也是 2。第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数;
2024-07-25 10:29:02
301
原创 496. 下一个更大元素 I
2 ,用加粗斜体标识,nums2 = [1,3,4,- 4 ,用加粗斜体标识,nums2 = [1,2,3,如果不存在下一个更大元素,那么本次查询的答案是。- 4 ,用加粗斜体标识,nums2 = [1,3,不存在下一个更大元素,所以答案是 -1。- 2 ,用加粗斜体标识,nums2 = [1,不存在下一个更大元素,所以答案是 -1。不存在下一个更大元素,所以答案是 -1。- 1 ,用加粗斜体标识,nums2 = [下一个更大元素是 3。下一个更大元素是 3。
2024-07-25 10:11:15
355
原创 647. 回文子串
6个回文子串: "a", "a", "a", "aa", "aa", "aaa"三个回文子串: "a", "b", "c"是字符串中的由连续字符组成的一个序列。是正着读和倒过来读一样的字符串。,请你统计并返回这个字符串中。
2024-07-23 13:56:53
228
原创 300. 最长递增子序列
是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。最长递增子序列是 [2,3,7,101],因此长度为 4。,找到其中最长严格递增子序列的长度。
2024-07-22 09:51:41
162
原创 674. 最长连续递增序列
然后递推公式:因为要连续递增,因此每个数要和前一个数进行比较,如果当前数大于前一个数,那最长递增子序列+1,更新dp[i]的值,dp[i] = max(dp[i],dp[i-1]+1), 否则,当前数小于前一个数了,递增中断了,不是连续了,那就不用更新dp[i]的值。然后是初始化,我们可以看到每个i都依赖i-1的值,因此我们需要初始化dp[0],因为递增子序列最短也会是1,也就是每个数自己,所以初始化为1。首先明确dp[i]的含义,dp[i]代表以nums[i]结尾的最长连续递增子序列的长度。
2024-07-22 09:39:06
265
原创 714. 买卖股票的最佳时机含手续费
你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。总利润: ((8 - 1) - 2) + ((9 - 4) - 2) = 8。在此处买入 prices[0] = 1。在此处卖出 prices[3] = 8。在此处买入 prices[4] = 4。在此处卖出 prices[5] = 9。代表了交易股票的手续费用。返回获得利润的最大值。
2024-07-21 23:05:14
133
原创 309. 买卖股票的最佳时机含冷冻期
设计一个算法计算出最大利润。对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
2024-07-21 16:44:15
597
原创 188. 买卖股票的最佳时机 IV
随后,在第 5 天 (股票价格 = 0) 的时候买入,在第 6 天 (股票价格 = 3) 的时候卖出, 这笔交易所能获得利润 = 3-0 = 3。在第 2 天 (股票价格 = 2) 的时候买入,在第 3 天 (股票价格 = 6) 的时候卖出, 这笔交易所能获得利润 = 6-2 = 4。在第 1 天 (股票价格 = 2) 的时候买入,在第 2 天 (股票价格 = 4) 的时候卖出,这笔交易所能获得利润 = 4-2 = 2。你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
2024-07-20 16:55:42
324
原创 123. 买卖股票的最佳时机 III
随后,在第 7 天(股票价格 = 1)的时候买入,在第 8 天 (股票价格 = 4)的时候卖出,这笔交易所能获得利润 = 4-1 = 3。在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4。在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3-0 = 3。你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。设计一个算法来计算你所能获取的最大利润。
2024-07-20 16:31:23
422
原创 337. 打家劫舍 III
之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为。小偷一晚能够盗取的最高金额 3 + 3 + 1 = 7。小偷一晚能够盗取的最高金额 4 + 5 = 9。,小偷能够盗取的最高金额。
2024-07-20 09:14:43
295
原创 213. 打家劫舍 II
你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都。,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,你可以先偷窃 1 号房屋(金额 = 1),然后偷窃 3 号房屋(金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4。给定一个代表每个房屋存放金额的非负整数数组,计算你。,今晚能够偷窃到的最高金额。
2024-07-19 14:26:50
422
原创 198. 打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 2 + 9 + 1 = 12。偷窃到的最高金额 = 1 + 3 = 4。给定一个代表每个房屋存放金额的非负整数数组,计算你。,一夜之内能够偷窃到的最高金额。
2024-07-19 13:48:58
446
原创 139. 单词拆分
返回 true 因为 "applepenapple" 可以由 "apple" "pen" "apple" 拼接成。返回 true 因为 "leetcode" 可以由 "leet" 和 "code" 拼接成。不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。如果可以利用字典中出现的一个或多个单词拼接出。注意,你可以重复使用字典中的单词。
2024-07-19 10:09:42
243
原创 279. 完全平方数
首先明确dp[j]代表组成数字j所需的完全平方数最少是dp[j]个,然后确定递推公式,dp[j-i*i]代表组成数字j-i*i需要的最少完全平方数最少是dp[j-i*i]个,那组成数字j只需在此基础上加上一个完全平方数i*i即可,每次递推取最小,因此递推公式是dp[j]= min(dp[j],dp[j-i*i]+1),然后初始化,因为要取最小,因此dp列表初始化时值尽可能的大,然后dp[0]的值,因为题目中n最小也是1,因此dp[0]的值应该没啥关系,取0即可。是一个整数,其值等于另一个整数的平方;
2024-07-19 09:00:01
232
原创 322. 零钱兑换
如果没有任何一种硬币组合能组成总金额,返回。,表示不同面额的硬币;你可以认为每种硬币的数量是无限的。计算并返回可以凑成总金额所需的。代码(Python)
2024-07-19 08:10:28
660
原创 518. 零钱兑换 II
请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回。题目数据保证结果符合 32 位带符号整数。只用面额 2 的硬币不能凑成总金额 3。表示不同面额的硬币,另给一个整数。假设每一种面额的硬币有无限个。
2024-07-18 17:42:18
248
原创 494. 目标和
返回可以通过上述方法构造的、运算结果等于。一共有 5 种方法让最终目标和为 3。,然后串联起所有整数,可以构造一个。向数组中的每个整数前添加。给你一个非负整数数组。
2024-07-17 10:36:31
223
原创 1049. 最后一块石头的重量 II
组合 2 和 4,得到 2,所以数组转化为 [2,7,1,8,1],组合 1 和 1,得到 0,所以数组转化为 [1],这就是最优值。组合 7 和 8,得到 1,所以数组转化为 [2,1,1,1],组合 2 和 1,得到 1,所以数组转化为 [1,1,1],,然后将它们一起粉碎。假设石头的重量分别为。如果没有石头剩下,就返回。有一堆石头,用整数数组。
2024-07-17 09:28:16
190
原创 1046. 最后一块石头的重量
最后选出 1 和 1,得到 0,最终数组转换为 [1],这就是最后剩下那块石头的重量。最后,最多只会剩下一块石头。如果没有石头剩下,就返回。先选出 7 和 8,得到 1,所以数组转换为 [2,4,1,1,1],再选出 2 和 4,得到 2,所以数组转换为 [2,1,1,1],接着是 2 和 1,得到 1,所以数组转换为 [1,1,1],石头,然后将它们一起粉碎。假设石头的重量分别为。有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块。
2024-07-17 08:41:07
169
原创 416. 分割等和子集
请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。数组可以分割成 [1, 5, 5] 和 [11]。数组不能分割成两个元素和相等的子集。
2024-07-16 23:24:45
256
原创 63. 不同路径 II
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格的左上角 (起始点在下图中标记为 “Start” )。1. 向右 -> 向右 -> 向下 -> 向下。2. 向下 -> 向下 -> 向右 -> 向右。3x3 网格的正中间有一个障碍物。网格中的障碍物和空位置分别用。
2024-07-15 15:08:48
575
原创 62. 不同路径
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。网格的左上角 (起始点在下图中标记为 “Start” )。从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向下 -> 向下。2. 向下 -> 向下 -> 向右。3. 向下 -> 向右 -> 向下。问总共有多少条不同的路径?
2024-07-15 14:04:57
123
原创 746. 使用最小花费爬楼梯
一旦你支付此费用,即可选择向上爬一个或者两个台阶。- 支付 1 ,向上爬两个台阶,到达下标为 2 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 4 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 6 的台阶。- 支付 1 ,向上爬一个台阶,到达下标为 7 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 9 的台阶。- 支付 15 ,向上爬两个台阶,到达楼梯顶部。- 支付 1 ,向上爬一个台阶,到达楼梯顶部。你将从下标为 1 的台阶开始。你将从下标为 0 的台阶开始。
2024-07-15 10:40:07
126
原创 70. 爬楼梯
你有多少种不同的方法可以爬到楼顶呢?1. 1 阶 + 1 阶 + 1 阶。有两种方法可以爬到楼顶。1. 1 阶 + 1 阶。有三种方法可以爬到楼顶。2. 1 阶 + 2 阶。3. 2 阶 + 1 阶。
2024-07-15 09:59:54
162
原创 509. 斐波那契数
F(n) = F(n - 1) + F(n - 2),其中 n > 1。开始,后面的每一项数字都是前面两项数字的和。表示)形成的序列称为。
2024-07-15 09:43:13
190
原创 1008. 前序遍历构造二叉搜索树
对于给定的测试用例,总是有可能找到具有给定需求的二叉搜索树。给定一个整数数组,它表示BST(即。是一棵二叉树,其中每个节点,首先显示节点的值,然后遍历。,构造树并返回其根。
2024-07-14 15:08:16
293
原创 面试题 04.02. 最小高度树
给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。给定有序数组: [-10,-3,0,5,9],
2024-07-14 14:16:43
215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人