自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法笔记:单调队列 - 滑动窗口最大值

之后又考虑了优先队列(大根堆),但发现只能访问堆顶元素,也就是窗口的最大值,没法处理需移出窗口的、且非最大的元素。总之:只要求 deque 中保存偏大的元素,偏小的元素删了没啥影响。构建窗口:窗口大小从 0 增长至给定值。滑动窗口:保持窗口大小不变,整体右移。,头部为窗口的最大值,尾部为最小值。解决方案:只采用尾插法向窗口添加元素。待插入元素更大:先尾删,直到待插入元素小于尾部元素,再进行尾插。一眼 multiset 作窗口,结果跑出来确实是没超时,尾部元素更大:直接尾插就行,deque 仍保持降序排列。

2023-08-28 21:16:17 62

原创 算法笔记:前缀和 - 和为 K 的子数组

如:对于 [1,2,3,4,5],其前缀和数组为 [1,3,6,10,15]在前缀和数组中,该值正好为下标 3 与 0 的差,即 10 - 1 = 9。我们采用哈希表:键 - 前缀和,值 - 该前缀和出现的次数。比如说我们想求下标 1 到 3 之间的和,即 2 + 3 + 4 = 9。寻找与 sum 之差正好为 K 的其他前缀和:即。1. 首先,前缀和是指:数组从下标0到当前位置所有元素之和。一开始以为是滑动窗口问题,写完提交才发现没考虑负数。这样的“其他前缀和”有多少个,最终的答案就增加多少。

2023-08-28 16:56:13 56

原创 算法笔记:滑动窗口 - 找到字符串中所有字母异位词

两个哈希map(姑且这么叫吧):win存储窗口中已存在的,need存储窗口中必须包含的。(可能有一些+1 -1之类的边界问题,需要具体分析)一个整型:done,记录win中已有多少字符的数量符合need的要求。此时,left、right所包含的即为符合要求的子串。1. 右指针右移,扩大窗口,直到窗口符合need要求。2. 左指针右移,缩小窗口,直到窗口不符合要求。3. 重复上述步骤,直到right越界。两个指针:left、right。基本思路:滑动窗口(其实也是双指针的一种)

2023-08-26 23:11:25 55

原创 算法笔记:双指针 - 三数之和

3. 使mid、right所指值之和 等于 left所指值 的相反数。2. 先固定left,使mid、right指针从两侧向中间移动。若前者偏大:right--4. 最后再移动left,并重复上述步骤。基本思路:(其实是left、mid、right三指针)若前者偏小:mid++

2023-08-26 22:43:17 48

空空如也

空空如也

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

TA关注的人

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