leetcode
文章平均质量分 59
Mr_Richard
这个作者很懒,什么都没留下…
展开
-
377. 组合总和 Ⅳ
这里的num,nums数组中的各个元素都有可能。所以递推方程,j需要满足。题目数据保证答案符合 32 位整数范围。,爬 0 个台阶的方案数是 1。,防止下标越界),此时方案数为。原创 2024-04-22 09:58:28 · 443 阅读 · 0 评论 -
回溯算法-组合问题
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。该列表不能包含相同的组合两次,组合可以以任何顺序返回。如果至少一个数字的被选数量不同,则两种组合是不同的。的字符串,返回所有它能表示的字母组合。需要设置变量记录当前path列表中的元素和。**注意:**解集不能包含重复的组合。中的每个数字在每个组合中只能使用。,并以列表形式返回。中可以使数字和为目标数。对于给定的输入,保证和为。给定一个候选人编号的集合。中所有可以使数字和为。所有可能的有效组合的列表。原创 2024-04-21 13:06:57 · 580 阅读 · 0 评论 -
2007. 从双倍数组中还原原数组
一个整数数组original可以转变成一个数组changed,转变方式为将original中每个元素加入数组中,然后将所有元素。给你一个数组changed,如果change是数组,那么请你返回original数组,否则请返回空数组。original的元素可以以顺序返回。原创 2024-04-18 10:11:09 · 418 阅读 · 0 评论 -
单调栈基础题
是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用。的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。如果不存在下一个更大元素,那么本次查询的答案是。求在该柱状图中,能够勾勒出来的矩形的最大面积。,表示每天的温度,返回一个数组。循环数组可以用%运算来降低难度。个非负整数表示每个宽度为。原创 2024-04-14 18:51:11 · 645 阅读 · 0 评论 -
2009. 使数组连续的最少操作数
nums数组去重升序排序后,设调整后的数组为newNums,在[newNums[0], newNums[0]+n-1](n为nums数组长度)范围内的元素是不需要调整的,设这个范围内的元素个数为k,则调整次数为n-k。但枚举每个可能的元素作为调整后的数组元素起始值,这种暴力破解会超时,所以还需要使用滑动窗口。暴力破解,枚举每个可能的元素作为调整后的数组元素起始值,超时。每一次操作中,你可以将。满足以下条件,那么它是。原创 2024-04-14 17:23:24 · 317 阅读 · 0 评论 -
3107. 使数组中位数等于 K 的最少操作数
一个数组的中位数指的是数组按非递减顺序排序后最中间的元素。如果数组长度为偶数,我们选择中间两个数的较大值为中位数。**输入:**nums = [1,2,3,4,5,6], k = 4。**输入:**nums = [2,5,6,8,5], k = 4。**输入:**nums = [2,5,6,8,5], k = 7。一次操作中,你可以选择任一元素 加。**解释:**数组中位数已经等于。现在数组的中位数等于。增加 1 两次,并且将。增加 1 一次,得到。**解释:**我们将。**解释:**我们将。原创 2024-04-14 16:46:22 · 306 阅读 · 0 评论 -
239. 滑动窗口最大值
使用单调队列来记录当前窗口内滑动窗口的最大值的下标,而非记录当前窗口内滑动窗口的最大值。的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的。使用单调队列来记录当前窗口内滑动窗口的最大值的下标,以方便查找。滑动窗口每次只向右移动一位。原创 2024-04-14 16:34:04 · 161 阅读 · 0 评论 -
leetcode 不同路径
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格的左上角 (起始点在下图中标记为 “Start” )。网格的左上角 (起始点在下图中标记为 “Start” )。网格中的障碍物和空位置分别用。问总共有多少条不同的路径?原创 2024-03-31 17:55:38 · 450 阅读 · 1 评论 -
100266. 交替子数组计数
给你一个二进制数组nums。如果一个子数组中 不存在 两个 相邻 元素的值 相同 的情况,我们称这样的子数组为交替子数组。要求返回数组 nums 中交替子数组的数量。示例 1:输入: nums = [0,1,1,1]输出: 5解释:以下子数组是交替子数组:[0] 、[1] 、[1] 、[1] 以及 [0,1]。示例 2:输入: nums = [1,0,1,0]输出: 10解释:数组的每个子数组都是交替子数组。可以统计在内的子数组共有 10 个。原创 2024-03-31 17:20:59 · 228 阅读 · 0 评论 -
链表基础题
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。为了表示给定链表中的环,评测系统内部使用整数。为了表示给定链表中的环,评测系统内部使用整数。**进阶:**链表可以选用迭代或递归方式完成反转。来表示链表尾连接到链表中的位置(索引从 0 开始)。,请反转链表,并返回反转后的链表的头节点。**进阶:**你能尝试使用一趟扫描实现吗?,返回链表开始入环的第一个节点。给你一个链表,删除链表的倒数第。**进阶:**你是否可以使用。原创 2024-03-30 14:33:56 · 661 阅读 · 0 评论 -
2834. 找出美丽数组的最小和
n和target。如果数组nums满足下述条件,则称其为。nums[0, n-1]ij返回符合条件的美丽数组所可能具备的和,并对结果进行取模109 + 7。原创 2024-03-09 13:02:54 · 331 阅读 · 0 评论 -
Leetcode 542. 01 矩阵
取20000(最长距离:m+n-1=19999<20000)。,请输出一个大小相同的矩阵,其中每一个格子是。表示(i,j)到0的最短距离,即为所求。中对应位置元素到最近的。两个相邻元素间的距离为。原创 2023-10-31 13:02:29 · 899 阅读 · 0 评论 -
Leetcode 665. 非递减数列
我们是这样定义一个非递减数列的: 对于数组中任意的。个元素的情况下,该数组能否变成一个非递减数列。原创 2023-10-27 11:50:17 · 228 阅读 · 0 评论 -
Leetcode 413. 等差数列划分
数学规律:在本题中,长度为n的等差数列会比长度为n-1的等差数列的子数组个数多n-2个(1…n),即有 f(n) = f(n-1) + n-2; 状态转移方程: dp[i] = dp[i-1] + i-2。动态规划:求解长度为n(n>=3)的等差数列所拥有的子数组的个数; 边界条件:dp[1] = 0, dp[2] = 3。,并且任意两个相邻元素之差相同,则称该数列为等差数列。滑动窗口:求给定数组是否存在长度大于等于3的等差数列。是数组中的一个连续序列。原创 2023-10-27 11:47:31 · 126 阅读 · 0 评论 -
LT_2527. 查询数组 Xor 美丽值
给你一个下标从开始的整数数组nums。三个下标ij和k的定义为。一个数组的是数组中所有满足(i, j, k)的的异或结果。请你返回nums的 xor 美丽值。原创 2023-09-25 11:29:47 · 99 阅读 · 0 评论 -
LeetCode 2296.设计一个文本编辑器
比较暴力的解法,使用StringBuilder来模拟字符串的变化,完全数学化去理解,但性能会差一些,在题解区看到了有人提到了对顶栈。看了几篇介绍帖子,试着写了下,确实写起来更简单。原创 2023-09-24 17:46:52 · 266 阅读 · 0 评论 -
633. 平方数之和
为了避免溢出而导致的Wrong Answer,我们选择了long型数据来接受i,j,total变量而非int型数据。这题有个比较坑的测试例:c=2147483600。,你要判断是否存在两个整数。原创 2023-02-26 16:34:55 · 64 阅读 · 0 评论 -
452.用最少数量的箭引爆气球
这种方式排序时,由于做减法的两个数都比较大,会出现溢出。在这时,数组排序后,会变成{{2147483646,2147483647},{-2147483646,-2147483645}}的顺序,这与我们需要的不同。从左到右遍历points数组,如果右边界小于当前元素的左边界,说明无交集,只能新增1支箭;结合贪心的思想,使points数组中不同元素尽可能有交集,才能尽可能减少射箭的次数。很明显,它使用的是“原创 2023-02-26 16:35:43 · 82 阅读 · 0 评论 -
435. 无重叠区间
先按数组元素右边界升序排序,使用变量i指向正访问的intervals数组元素,变量j指向当前访问的后一个intervals数组元素。从左到右遍历intervals数组,如果i指向的数组元素的右边界原创 2023-02-26 16:35:09 · 66 阅读 · 0 评论 -
65.非递减数列
解释: 你可以通过把第一个 4 变成 1 来使得它成为一个非递减数列。解释: 你不能在只改变一个元素的情况下将其变为非递减数列。我们是这样定义一个非递减数列的: 对于数组中任意的。个元素的情况下,该数组能否变成一个非递减数列。输入: nums = [4,2,1]原创 2023-02-26 16:34:39 · 55 阅读 · 0 评论 -
3.无重复字符的最长子串-中等
设置滑动窗口的左右边界的初始值均为0,并借助map存储当前最长不重复字符的子串中出现过的字符。当右边界位置的字符与当前最长不重复字符子串不产生冲突时,即map不包含右边界位置的字符的key,右边界右移一格,并把key保存到map中;当右边界位置的字符与当前最长不重复字符子串产生冲突时,从map中移除左边界字符对应的可以,左边界右移一格。这种方式求解时时间复杂度过高,会导致超出时间限制,无法AC。基于滑动窗口的思想,维护当前最长不重复字符的子串。,请你找出其中不含有重复字符的。原创 2023-02-26 16:34:10 · 106 阅读 · 0 评论