自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 738. 单调递增的数字

对数字采用从后往前遍历,当第 i-1 个数是大于第 i 个数的,就让第 i-1 个数减 1。局部最优推出全局最优:例 : 332 -> 329 -> 299。当且仅当每个相邻位数上的数字。的最大数字,且数字呈。时,我们称这个整数是。

2024-03-11 16:07:13 221

原创 452. 用最少数量的箭引爆气球

有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组。判断是否有重叠区间的问题:判断后一个的左边界是否小于与前一个的右边界。-在x = 11处发射箭,击破气球[10,16]和[7,12]。- 在x = 2处发射箭,击破气球[1,2]和[2,3]。- 在x = 4处射出箭,击破气球[3,4]和[4,5]。-在x = 6处射出箭,击破气球[2,8]和[1,6]。处射出一支箭,若有一个气球的直径的开始和结束坐标为。你不知道气球的确切 y 坐标。每个气球需要射出一支箭,总共需要4支箭。

2024-03-11 16:00:58 309

原创 1005. K 次取反后最大化的数组和

选择下标 (1, 2, 2) ,nums 变为 [3,1,0,2]。选择下标 (1, 4) ,nums 变为 [2,3,-1,5,4]。选择下标 1 ,nums 变为 [4,-2,3]。以这种方式修改数组后,返回数组。可以多次选择同一个下标。

2024-03-04 15:40:44 197

原创 有序链表的合并

已知线性表 LA 和 LB 中的数据元素按值非递减有序排列,现要求将 LA 和 LB 归并为一个新的线性表 LC, 且 LC 中的数据元素仍然按值非递减有序排列。例如,设LA=(3,5,8,11) ,LB=(2,6,8,9,11,15,20) 则LC=(2,3,6,6,8,8,9,11,11,15,20)

2024-02-29 11:29:40 588

原创 循环链表实现约瑟夫环

有n个人围成一圈,顺序从1开始排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

2024-02-29 11:26:48 176

原创 700. 二叉搜索树中的搜索

返回以该节点为根的子树。如果节点不存在,则返回。你需要在 BST 中找到节点值等于。给定二叉搜索树(BST)的根节点。

2024-02-27 16:25:20 296

原创 46. 全排列

used数组,记录此时path里都有哪些元素使用了,一个排列里一个元素只能使用一次。给定一个不含重复数字的数组。

2024-02-26 16:36:27 196

原创 78. 子集

回溯:startIndex 来控制不取重复元素。返回该数组所有可能的子集(幂集)。

2024-02-19 21:15:03 200

原创 39. 组合总和

剪枝:先对原数据进行排序,如果下一层的sum(就是本层的 sum + candidates[i])已经大于target,就可以结束本轮for循环的遍历。2 和 3 可以形成一组候选,2 + 2 + 3 = 7。注意 2 可以使用多次。7 也是一个候选, 7 = 7。如果至少一个数字的被选数量不同,则两种组合是不同的。,并以列表形式返回。中可以使数字和为目标数。对于给定的输入,保证和为。

2024-02-17 16:53:56 378

原创 77. 组合

将上述组合问题画成一个多叉树,回溯法搜索就是树型结构的搜索过程,for循环控制横向遍历,用递归来控制纵向遍历,path的大小等于k的时候跳出递归。

2024-02-17 16:46:21 173

原创 226. 翻转二叉树

翻转这棵二叉树,并返回其根节点。给你一棵二叉树的根节点。

2024-02-16 16:09:53 183

原创 104. 二叉树的最大深度

是指从根节点到最远叶子节点的最长路径上的节点数。

2024-02-16 16:07:07 143

原创 111. 二叉树的最小深度

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。给定一个二叉树,找出其最小深度。叶子节点是指没有子节点的节点。

2024-02-16 16:04:17 149

原创 116. 填充每个节点的下一个右侧节点指针

给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点,如图 B 所示。序列化的输出按层序遍历排列,同一层节点由 next 指针连接,'#' 标志着每一层的结束。填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为。,其所有叶子节点都在同一层,每个父节点都有两个子节点。初始状态下,所有 next 指针都被设置为。

2024-02-15 22:27:51 318

原创 102. 二叉树的层序遍历

(即逐层地,从左到右访问所有节点)。

2024-02-15 11:41:31 157

原创 145. 二叉树的后序遍历

迭代法中,后序遍历和前序遍历的差别在于左右结点的入栈顺序要改变,同时最后要翻转结果集。给你一棵二叉树的根节点。

2024-02-11 16:47:36 159

原创 144. 二叉树的前序遍历

迭代法:用栈来模拟递归。

2024-02-11 16:32:36 202

原创 347. 前 K 个高频元素

请你返回其中出现频率前。

2024-02-07 21:55:43 121

原创 150. 逆波兰表达式求值

该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6。做题前要先了解什么是后缀表达式,例如:5 6 2 * + 4 2 / -该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9。转化成我们常见的中缀表达式即为:(5+(6*2)) - (4/2)返回一个表示表达式值的整数。

2024-02-06 22:03:11 288

原创 碰撞检测小工具

【代码】碰撞检测小工具。

2024-02-06 18:22:34 79

原创 1047. 删除字符串中的所有相邻重复项

例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。在完成所有重复项删除操作后返回最终的字符串。在 S 上反复执行重复项删除操作,直到无法继续删除。会选择两个相邻且相同的字母,并删除它们。给出由小写字母组成的字符串。

2024-02-06 18:18:27 129

原创 20. 有效的括号

3.右括号多于左括号 -> 栈为空了但字符串尚未遍历结束。1.存在左括号多余 -> 栈里面存在多余的右括号。2.括号没有多余,但括号的类型匹配不上。,判断字符串是否有效。

2024-02-06 12:19:29 152

原创 225. 用队列实现栈

用一个队列来实现栈:和使用两个队列的区别主要就是在删除元素时,将被删元素前面的元素加入到队列末尾,此时再去弹出元素就是栈的顺序了。请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(myStack.empty();// 返回 False。

2024-02-05 21:49:03 135

原创 232. 用栈实现队列

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(

2024-02-05 21:08:39 303

原创 459. 重复的子字符串

可由子串 "abc" 重复四次构成。(或子串 "abcabc" 重复两次构成。练习kmp的好题目,具体讲解kmp还得看b站卡哥的代码随想录,非常清晰!,检查是否可以通过由它的一个子串重复多次构成。可由子串 "ab" 重复两次构成。给定一个非空的字符串。

2024-01-31 21:31:15 140

原创 27. 移除元素

你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。你不需要考虑数组中超出新长度后面的元素。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。// 根据你的函数返回的长度, 它会打印出数组中。的元素,并返回移除后数组的新长度。

2024-01-29 17:51:17 216

原创 151. 反转字符串中的单词

中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。双指针:和移除元素的题有点像,快指针遍历判断,慢指针记录位置存储符合条件的值。反转后的字符串中不能存在前导空格和尾随空格。中使用至少一个空格将字符串中的。之间用单个空格连接的结果字符串。是由非空格字符组成的字符串。

2024-01-29 17:49:13 194

原创 28. 找出字符串中第一个匹配项的下标

"leeto" 没有在 "leetcode" 中出现,所以返回 -1。字符串的第一个匹配项的下标(下标从 0 开始)。第一个匹配项的下标是 0 ,所以返回 0。"sad" 在下标 0 和 6 处匹配。

2024-01-29 16:20:47 192

原创 344. 反转字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组。、使用 O(1) 的额外空间解决这一问题。简单的双指针运用,可以拿来熟悉一下双指针。不要给另外的数组分配额外的空间,你必须。

2024-01-28 12:08:47 207

原创 链表相交

由于这两个链表不相交,所以 intersectVal 必须为 0,而 skipA 和 skipB 可以是任意值。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。从各自的表头开始算起,链表 A 为 [0,9,1,2,4],链表 B 为 [3,2,4]。从各自的表头开始算起,链表 A 为 [2,6,4],链表 B 为 [1,5]。相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。相交节点的值为 2 (注意,如果两个链表相交则不能为 0)。

2024-01-27 16:49:19 255

原创 142. 环形链表 II

指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。哈希表:把每个结点记录下来,如果遇到此前有的结点,则判定有环。如果链表中有某个节点,可以通过连续跟踪。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。,返回链表开始入环的第一个节点。来表示链表尾连接到链表中的位置(,仅仅是为了标识链表的实际情况。返回索引为 1 的链表节点。返回索引为 0 的链表节点。给定一个链表的头节点。如果链表无环,则返回。,则在该链表中没有环。

2024-01-27 16:33:13 268

原创 19. 删除链表的倒数第 N 个结点

定义快慢指针,快指针走n步,然后快慢指针同时走直到快指针指向空,这时慢指针就指向了要删除的结点,但我们删除结点需要让慢指针指向被删结点的前一个结点,所以快指针需要走n+1步。给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。

2024-01-27 12:15:14 151

原创 24.两两交换的链表节点

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

2024-01-26 12:47:41 168 1

原创 206.反转链表

理解双指针的写法之后我们就可以写递归了,思路是一样的。,请你反转链表,并返回反转后的链表。

2024-01-26 11:45:53 121 1

原创 203.移除链表元素

使用虚拟头结点的写法:这样做可以进行统一的删除操作,如果要删除的是头结点,不用再对头结点进行单独处理。,请你删除链表中所有满足。给你一个链表的头节点。

2024-01-25 18:10:30 363

原创 15. 三数之和

首先对数组进行排序,如果 i 的数已经大于0了,就说明后面的数都会大于0,不可能有相加为0的情况。如果nums[i] + nums[left] + nums[right] > 0 就说明此时三数之和大了,right左移;如果 如果nums[i] + nums[left] + nums[right] < 0 就说明此时三数之和小了,left右移。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。

2024-01-24 17:36:55 317

原创 383. 赎金信

分析题目,说字符串A能由字符串B中的字符构成,就代表要找A的字符是否在B中出现过,因为题目说字符串均由小写字母组成,所以我们采用数组来做哈希映射。

2024-01-24 17:28:25 333

原创 454.四数相加 II

看到这题,想到了四个for,但肯定是不可行的,果断放弃。分析题目,前两个数组两个数是否等于后两个数组两个数的和的负,总结下来就是需要我们判断数字是否出现在数组里,那么就选择用哈希表来做。,请你计算有多少个元组。

2024-01-23 21:52:18 328 1

原创 349.两个数组的交集

思路: 根据示例可知返回的数组是去重的,所以这里使用集合。至于使用set还是unordered_set要根据需求,如果要求集合是有序的(set默认的是升序排序),就使用set,如果不关心元素的顺序,就使用unordered_set。输出结果中的每个元素一定是。[4,9] 也是可通过的。

2024-01-22 17:55:49 310

原创 242.有效的字母异位词

使用哈希表map做映射: 把 s 的每个字符当作map的键key,出现的次数当作value,然后去查找t,如果找到了value--,当value小于0就不符合。map.find() 会返回所找元素的迭代器,找不到就返回map.end()。map.end()指向的是超出map最后一个键值对的位置,并不指向有效元素。用数组做映射: 执行速度大大提高(相对于这一道题)。来自b站卡哥的代码随想录的解法(牛掰)中每个字符出现的次数都相同,则称。,编写一个函数来判断。

2024-01-22 17:23:19 337

数据库课程设计-音乐播放器

python+pyqt+mysql

2024-06-19

空空如也

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

TA关注的人

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