自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(299)
  • 收藏
  • 关注

原创 189. 轮转数组

向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100],将数组中的元素向右轮转。

2024-08-04 16:25:40 140

原创 941. 有效的山脉数组

如果它是有效的山脉数组就返回。让我们回顾一下,如果。

2024-08-04 16:00:07 249

原创 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

原创 18. 四数之和

请你找出并返回满足下述全部条件且。

2024-08-01 10:55:40 215

原创 454. 四数相加 II

请你计算有多少个元组。

2024-07-31 14:35:30 259

原创 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

原创 739. 每日温度

天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用。,表示每天的温度,返回一个数组。

2024-07-25 09:21:44 156

原创 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

原创 377. 组合总和 Ⅳ

题目数据保证答案符合 32 位整数范围。请注意,顺序不同的序列被视作不同的组合。

2024-07-18 18:05:44 171

原创 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

原创 1305. 两棵二叉搜索树中的所有元素

请你返回一个列表,其中包含。

2024-07-14 14:50:16 235

原创 面试题 04.02. 最小高度树

给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。给定有序数组: [-10,-3,0,5,9],

2024-07-14 14:16:43 215

原创 938. 二叉搜索树的范围和

返回值位于范围 [low, high]之间的所有结点的值的和。给定二叉搜索树的根结点。

2024-07-14 14:06:03 103

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除