LeetCode刷题记录
leetcode刷题记录,不知道自己能坚持几天,但坚持几天是几天,有空就刷
幸运草时代狂想曲
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
234. 回文链表
给你一个单链表的头节点。,请你判断该链表是否为。原创 2024-09-11 12:34:42 · 341 阅读 · 0 评论 -
57. 插入区间
这是因为新的区间[4,8]与[3,5],[6,7],[8,10]重叠。升序排列,且区间之间不重叠(如果有必要的话,可以合并区间)。你可以创建一个新数组然后返回它。按照区间起始端点排序的区间列表。表示另一个区间的开始和结束。个区间的开始和结束,并且。原创 2024-09-10 14:37:16 · 372 阅读 · 0 评论 -
120. 三角形最小路径和
自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。也就是说,如果正位于当前行的下标。每一步只能移动到下一行中相邻的结点上。,那么下一步可以移动到下一行的下标。,找出自顶向下的最小路径和。原创 2024-09-09 12:48:35 · 436 阅读 · 0 评论 -
64. 最小路径和
请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。因为路径 1→3→1→1→1 的总和最小。每次只能向下或者向右移动一步。给定一个包含非负整数的。代码:(Python)原创 2024-09-09 12:12:52 · 353 阅读 · 0 评论 -
189. 轮转数组
向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100],将数组中的元素向右轮转。原创 2024-08-04 16:25:40 · 246 阅读 · 1 评论 -
941. 有效的山脉数组
如果它是有效的山脉数组就返回。让我们回顾一下,如果。原创 2024-08-04 16:00:07 · 323 阅读 · 0 评论 -
129. 求根节点到叶节点数字之和
因此,数字总和 = 495 + 491 + 40 =因此,数字总和 = 12 + 13 =,树中每个节点都存放有一个。计算从根节点到叶节点生成的。给你一个二叉树的根节点。是指没有子节点的节点。原创 2024-08-04 15:36:42 · 377 阅读 · 0 评论 -
347. 前 K 个高频元素
思路:统计每个元素出现次数,然后排序,最后输出前k个。很多人会想用字典统计次数,但字典是无序的,你还得先对字典按值进行排序,python提供了一个Counter函数,他会统计一个列表中各个元素出现的次数,并返回一个元组,然后利用most_common函数,它会按照出现频率降序返回一个元组,,请你返回其中出现频率前。原创 2024-08-01 16:26:50 · 201 阅读 · 0 评论 -
239. 滑动窗口最大值
思路:这道题的暴力解法不难想,每k个元素把最大值放入result,但当k很大的时候,这种方法就会超时了。的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的。那怎么做不超时呢,也就是得把时间复杂度减小到O(n)数量级上。滑动窗口的位置 最大值。滑动窗口每次只向右移动一位。原创 2024-08-01 15:39:43 · 299 阅读 · 0 评论 -
150. 逆波兰表达式求值
该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6。该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9。返回一个表示表达式值的整数。原创 2024-08-01 14:43:07 · 552 阅读 · 0 评论 -
18. 四数之和
请你找出并返回满足下述全部条件且。原创 2024-08-01 10:55:40 · 288 阅读 · 0 评论 -
454. 四数相加 II
请你计算有多少个元组。原创 2024-07-31 14:35:30 · 335 阅读 · 0 评论 -
15. 三数之和
不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。答案中不可以包含重复的三元组。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。,判断是否存在三元组。原创 2024-07-31 13:26:50 · 428 阅读 · 0 评论 -
503. 下一个更大元素 II
是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。第二个 1 的下一个最大的数需要循环搜索,结果也是 2。第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数;原创 2024-07-25 10:29:02 · 359 阅读 · 0 评论 -
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 · 430 阅读 · 0 评论 -
739. 每日温度
天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用。,表示每天的温度,返回一个数组。原创 2024-07-25 09:21:44 · 244 阅读 · 0 评论 -
647. 回文子串
6个回文子串: "a", "a", "a", "aa", "aa", "aaa"三个回文子串: "a", "b", "c"是字符串中的由连续字符组成的一个序列。是正着读和倒过来读一样的字符串。,请你统计并返回这个字符串中。原创 2024-07-23 13:56:53 · 287 阅读 · 0 评论 -
300. 最长递增子序列
是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。最长递增子序列是 [2,3,7,101],因此长度为 4。,找到其中最长严格递增子序列的长度。原创 2024-07-22 09:51:41 · 262 阅读 · 0 评论 -
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 · 373 阅读 · 0 评论 -
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 · 187 阅读 · 0 评论 -
309. 买卖股票的最佳时机含冷冻期
设计一个算法计算出最大利润。对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。原创 2024-07-21 16:44:15 · 674 阅读 · 0 评论 -
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 · 378 阅读 · 0 评论 -
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 · 517 阅读 · 0 评论 -
337. 打家劫舍 III
之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为。小偷一晚能够盗取的最高金额 3 + 3 + 1 = 7。小偷一晚能够盗取的最高金额 4 + 5 = 9。,小偷能够盗取的最高金额。原创 2024-07-20 09:14:43 · 345 阅读 · 0 评论 -
213. 打家劫舍 II
你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都。,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,你可以先偷窃 1 号房屋(金额 = 1),然后偷窃 3 号房屋(金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4。给定一个代表每个房屋存放金额的非负整数数组,计算你。,今晚能够偷窃到的最高金额。原创 2024-07-19 14:26:50 · 473 阅读 · 0 评论 -
198. 打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 2 + 9 + 1 = 12。偷窃到的最高金额 = 1 + 3 = 4。给定一个代表每个房屋存放金额的非负整数数组,计算你。,一夜之内能够偷窃到的最高金额。原创 2024-07-19 13:48:58 · 489 阅读 · 0 评论 -
139. 单词拆分
返回 true 因为 "applepenapple" 可以由 "apple" "pen" "apple" 拼接成。返回 true 因为 "leetcode" 可以由 "leet" 和 "code" 拼接成。不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。如果可以利用字典中出现的一个或多个单词拼接出。注意,你可以重复使用字典中的单词。原创 2024-07-19 10:09:42 · 290 阅读 · 0 评论 -
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 · 312 阅读 · 0 评论 -
322. 零钱兑换
如果没有任何一种硬币组合能组成总金额,返回。,表示不同面额的硬币;你可以认为每种硬币的数量是无限的。计算并返回可以凑成总金额所需的。代码(Python)原创 2024-07-19 08:10:28 · 728 阅读 · 0 评论 -
377. 组合总和 Ⅳ
题目数据保证答案符合 32 位整数范围。请注意,顺序不同的序列被视作不同的组合。原创 2024-07-18 18:05:44 · 219 阅读 · 0 评论 -
518. 零钱兑换 II
请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回。题目数据保证结果符合 32 位带符号整数。只用面额 2 的硬币不能凑成总金额 3。表示不同面额的硬币,另给一个整数。假设每一种面额的硬币有无限个。原创 2024-07-18 17:42:18 · 305 阅读 · 0 评论 -
494. 目标和
返回可以通过上述方法构造的、运算结果等于。一共有 5 种方法让最终目标和为 3。,然后串联起所有整数,可以构造一个。向数组中的每个整数前添加。给你一个非负整数数组。原创 2024-07-17 10:36:31 · 264 阅读 · 0 评论 -
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 · 243 阅读 · 0 评论 -
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 · 222 阅读 · 0 评论 -
416. 分割等和子集
请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。数组可以分割成 [1, 5, 5] 和 [11]。数组不能分割成两个元素和相等的子集。原创 2024-07-16 23:24:45 · 327 阅读 · 0 评论 -
63. 不同路径 II
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格的左上角 (起始点在下图中标记为 “Start” )。1. 向右 -> 向右 -> 向下 -> 向下。2. 向下 -> 向下 -> 向右 -> 向右。3x3 网格的正中间有一个障碍物。网格中的障碍物和空位置分别用。原创 2024-07-15 15:08:48 · 628 阅读 · 0 评论 -
62. 不同路径
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。网格的左上角 (起始点在下图中标记为 “Start” )。从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向下 -> 向下。2. 向下 -> 向下 -> 向右。3. 向下 -> 向右 -> 向下。问总共有多少条不同的路径?原创 2024-07-15 14:04:57 · 201 阅读 · 0 评论 -
746. 使用最小花费爬楼梯
一旦你支付此费用,即可选择向上爬一个或者两个台阶。- 支付 1 ,向上爬两个台阶,到达下标为 2 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 4 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 6 的台阶。- 支付 1 ,向上爬一个台阶,到达下标为 7 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 9 的台阶。- 支付 15 ,向上爬两个台阶,到达楼梯顶部。- 支付 1 ,向上爬一个台阶,到达楼梯顶部。你将从下标为 1 的台阶开始。你将从下标为 0 的台阶开始。原创 2024-07-15 10:40:07 · 175 阅读 · 0 评论 -
70. 爬楼梯
你有多少种不同的方法可以爬到楼顶呢?1. 1 阶 + 1 阶 + 1 阶。有两种方法可以爬到楼顶。1. 1 阶 + 1 阶。有三种方法可以爬到楼顶。2. 1 阶 + 2 阶。3. 2 阶 + 1 阶。原创 2024-07-15 09:59:54 · 227 阅读 · 0 评论 -
509. 斐波那契数
F(n) = F(n - 1) + F(n - 2),其中 n > 1。开始,后面的每一项数字都是前面两项数字的和。表示)形成的序列称为。原创 2024-07-15 09:43:13 · 265 阅读 · 0 评论
分享