自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode Day12 栈与队列: 239. 滑动窗口最大值、347.前 K 个高频元素

每次窗口移动的时候,调用que.pop(滑动窗口中移除元素的数值),que.push(滑动窗口添加元素的数值),然后que.front()就返回我们要的最大值。保持如上规则,每次窗口移动的时候,只要问que.front()就可以返回当前窗口的最大值。

2024-05-16 03:20:00 364

原创 LeetCode Day11 栈与队列: 20. 有效的括号,1047. 删除字符串中的所有相邻重复项,150. 逆波兰表达式求值

Tips: 在匹配左括号的时候,右括号先入栈,就只需要比较当前元素和栈顶相不相等就可以了,比左括号先入栈代码实现要简单。当遍历当前的这个元素的时候,去栈里看一下我们是不是遍历过相同数值的相邻元素。平常使用的算式则是一种中缀表达式,如 ( 1 + 2 ) * ( 3 + 4 )。该算式的逆波兰表达式写法为 ( ( 1 2 + ) ( 3 4 + ) * )。,上式即便写成 1 2 + 3 4 + * 也可以依据次序计算出正确结果。[2] 直接将字符串作为栈 --> 省去栈需转为字符串的操作。

2024-05-16 00:39:21 816

原创 LeetCode Day10 栈与队列: 232.用栈实现队列,225. 用队列实现栈

(1) 模拟的栈:单队列:1 2 3(2) 弹出3模拟的栈:单队列:3 1 2 <--

2024-05-09 00:18:46 712

原创 LeetCode Day9 字符串: 28. 实现 strStr(),459.重复的子字符串,字符串总结,双指针回顾

28. 实现 strStr()28. 实现 strStr()459.重复的子字符串。

2024-04-25 23:57:31 254 5

原创 LeetCode Day8 字符串:344.反转字符串,541. 反转字符串II, 卡码网:54.替换数字,151.翻转字符串里的单词,卡码网:55.右旋转字符串

2)从后向前填充元素,避免了从前向后填充元素时,每次添加元素都要将添加元素之后的所有元素向后移动的问题。2. 使用双指针法,从后向前替换数字字符:i指向新长度的末尾,j指向旧长度的末尾。1. 扩充数组到每个数字字符替换成 "number" 之后的大小。1. 将字符串分成两个部分,length - n和n。151.翻转字符串里的单词。卡码网:55.右旋转字符串。541. 反转字符串II。卡码网:54.替换数字。3. 将两部分分别翻转。1)不用申请新数组。2. 翻转整个字符串。

2024-04-25 23:26:34 546 5

原创 LeetCode Day4 链表: 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II

3. 比较curA和curB是否相同,如果不相同,同时向后移动curA和curB,如果遇到curA == curB,则找到交点。[1] 分别定义 fast 和 slow 指针,从头结点出发,fast指针每次移动两个节点,slow指针每次移动一个节点。1. 分别设定两个指针,curA指向链表A的头结点,curB指向链表B(更短)的头结点。[2] 更新cur,交换节点3和4 (交换3和4,则cur必须为3的前一个节点2)[3] 如果个链表有环,则 fast 和 slow指针在途中相遇。

2024-04-24 23:20:58 771

原创 LeetCode Day3 链表: 203.移除链表元素、707.设计链表、206.反转链表

5)

2024-04-21 21:17:08 697 1

原创 LeetCode Day7 哈希表: 454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和

454.四数相加II。

2024-04-06 19:59:11 814 2

原创 LeetCode Day6 哈希表: 242.有效的字母异位词,349. 两个数组的交集,202. 快乐数,1. 两数之和

242.有效的字母异位词。

2024-03-26 02:46:44 938 1

原创 LeetCode Day2 数组: 977.有序数组的平方, 209.长度最小的子数组, 59.螺旋矩阵II

1. 题目中的n为最终矩阵的边长。当n为奇数时,转完n/2圈后,中心还有一个空位。窗口的起始位置如何移动:如果当前窗口的值大于target了,窗口就要向前移动了(也就是该缩小了)。窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。注意: 每种情况都要坚持循环不变量原则,即每条边的区间定义相同。一个循环应该表示 滑动窗口的起始位置,还是终止位置?3. 更新后面的圈数,并注意n为奇数时的特殊情况。通过满足条件来更新i的位置,而不需要额外的循环。个正整数的数组和一个正整数。

2024-03-22 02:04:46 530 1

原创 LeetCode Day1 数组: 704. 二分查找、27. 移除元素

1. 定义middle的值时: 理论上middle = (right - left)/2, 但当int型的left和right数值过大,middle会发生int数据类型越界。关键: 数组性质----数组元素在内存地址中是连续存在的,只能被覆盖,不能删除。3. 当左右区间需要更新时,新的区间边界不包含middle。缺点: 仅适用于非负数。4. 注意审题,最终返还值为target的下标。循环不变量原则: 明确区间定义。2. middle的含义为。

2024-03-21 07:26:07 937 2

空空如也

空空如也

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

TA关注的人

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