- 博客(18)
- 收藏
- 关注
原创 MySQL锁
答案是Yes,但由于两个事务执行的都是批量插入的操作,因此事先不确定插入行数,所以有可能导致“交错预分配”的顺序值,有可能不会使用,比如T1只插入了四条数据,只用了1、3、5、7,T2插入了五条数据,因此表中的自增值有可能出现空隙,即{1、2、3、4、5、6、8、10},其中9就并未使用。通常在MySQL中插入数据时,是并不会产生锁的,但在插入前会先简单的判断一下,当前事务要插入的位置有没有存在间隙锁或临键锁,如果存在的话,当前插入数据的事务则需阻塞等待,直到拥有临键锁的事务提交。
2024-03-20 09:38:09 592 1
原创 347. 前 K 个高频元素
通过优先队列,实现小顶堆的维护。队列中的元素按照出现次数的大小有序存储,保留前 k 个高频元素。通过Map.Entry遍历HashMap的键值对,将键值对转为数组加入优先队列。使用HashMap统计数组中每个元素的出现次数,为后续构建小顶堆提供数据。,请你返回其中出现频率前。
2023-11-27 20:59:08 363
原创 239. 滑动窗口最大值
通过在每个元素的处理过程中,保持队列的单调性并及时移除无效元素,可以在常数时间内完成每个窗口的最大值计算。单向递减队列通过保持递减性质,使得队列头结点(或队列的最前端)永远是当前窗口的最大值。这对于解决滑动窗口最大值问题至关重要,因为我们需要在窗口滑动的过程中快速获取当前窗口的最大值。在窗口滑动过程中,单向递减队列会及时移除不在当前窗口范围内的元素。这样能够保持队列中的元素都是有效的候选值,确保队列头结点是当前窗口的最大值。的滑动窗口从数组的最左侧移动到数组的最右侧。中存储的就是每个窗口的最大值。
2023-11-27 20:19:09 389
原创 18. 四数之和
题意:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。答案中不可以包含重复的四元组。示例: 给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为: [ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2] ]
2023-11-23 09:23:00 35
原创 15. 三数之和
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0?请你找出所有满足条件且不重复的三元组。答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ]
2023-11-23 08:58:20 48
原创 454. 四数相加 II
如果本题想难度升级:就是给出一个数组(而不是四个数组),在这里找出四个元素相加等于0,答案中不可以包含重复的四元组,大家可以思考一下,后续的文章我也会讲到的。,因为三数之和和四数之和这两道题目使用哈希法在不超时的情况下做到对结果去重是很困难的,很有多细节需要处理。,请你计算有多少个元组。
2023-11-21 22:05:33 45
原创 142. 环形链表 II
给定一个链表的头节点head,返回链表开始入环的第一个节点。如果链表无环,则返回null。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(如果pos是-1,则在该链表中没有环。pos,仅仅是为了标识链表的实际情况。链表。返回索引为 1 的链表节点链表中有一个环,其尾部连接到第二个节点。返回索引为 0 的链表节点链表中有一个环,其尾部连接到第一个节点。返回 null链表中没有环。
2023-11-21 20:51:40 43
原创 面试题 02.07. 链表相交
给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回null。图示两个链表在节点c1开始相交题目数据整个链式结构中不存在环。,函数返回结果后,链表必须。相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。在 A 中,相交节点前有 2 个节点;在 B 中,相交节点前有 3 个节点。
2023-11-20 14:29:25 46 1
原创 19.删除链表的倒数第N个节点
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例 1:输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例 2:输入:head = [1], n = 1 输出:[] 示例 3:输入:head = [1,2], n = 1 输出:[1]
2023-11-20 14:15:52 44 1
原创 24. 两两交换链表中的节点
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。
2023-11-20 13:52:52 34 1
原创 206. 反转链表
给你单链表的头节点head,请你反转链表,并返回反转后的链表。[2,1]head = [][]链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题方法一:迭代假设链表为 1→2→3→∅,我们想要把它改成 ∅←1←2←3在遍历链表时,将当前节点的 next\textit{next}next 指针改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新的头引用。
2023-11-20 11:16:52 36 1
原创 707. 设计链表
/ 链表变为 1->2->3。// 现在,链表变为 1->3。以指示链表中的上一个节点。假设链表中的所有节点下标从。你可以选择使用单链表或者双链表,设计并实现自己的链表。是指向下一个节点的指针/引用。如果是双向链表,则还需要属性。
2023-11-15 19:48:52 35 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人