- 博客(6)
- 收藏
- 关注
原创 双指针(Two Pointers)
不断地检查当前指针所指向的两个元素之和是否等于目标值。(这道题不适合像上一题从0,1开始遍历)慢指针(slow pointer)快指针(fast pointer)双指针:一个快指针,一个慢指针。当前不重复元素应该存放的位置。或同向移动,或相向移动。一个指向数组的起始位置。一个指向数组的末尾位置。
2024-05-24 00:26:05 597 1
原创 单调队列&&滑动窗口
解决需要在给定大小的窗口范围内对序列进行操作的问题。此时不能直接将队列内的数据数量与窗口大小比较。单调队列,顾名思义,队列必须维护它的单调性。滑动窗口(Sliding Window)固定大小的窗口,在序列上从左到右滑动。一个简单的示例来理解滑动窗口的概念。单调队列通常用于解决滑动窗口类问题。素的删除是通过滑动窗口的移动实现。删除操作通常不是主要的操作。滑动窗口中的最大值或最小值。连续子数组的最大和或最小和。第 k 大或第 k 小元素。deque(双端队列)连续子数组和等于特定值。为了维护队列的单调性。
2024-05-23 01:34:30 1464
原创 动态规划(蓝桥杯:小齐的奶牛牧场问题)
状态转移方程先定义好dp数组表示的含义动态规划就是要多练题,多写代码找感觉0小齐的奶牛牧场问题 - 蓝桥云课 (lanqiao.cn)我们需要知道每个位置的牛的开销,才能得出总共的开销当一个位置的方向改变,那么,只有在他左方,上方,以及左上方的牛的开销可能会改变dp[x][y]无非等于它下面的牛或者它右边的牛的花销。
2024-05-21 19:20:13 438
原创 并查集(很简单,秒懂的)
3.合并(merge):将两棵树合在一起。的大致方法(不涉及思路,不然就太长了)2.查找函数(find):查找根。画图理解的话,他就像是一棵树。两个学生是否是一个学校的。Kruskal 算法。如何判断图是否连通?
2024-05-20 17:55:20 247 1
原创 优先队列操作(priority queue)
自定义优先级,可以记住模板(struct cmp那段),最重要的就是return那里,结构体B在优先队列的位置是在A之前的(原因我也不清楚,一直没去了解,如果有人知道,可以告诉我一下)这是最简单的,定义一个int型的优先队列,但是很多情况下都不会是一个普通的int来存储,所以又产生了以下操作。这个优先队列表示的就是将结构体存入que后,结构体是按node.x从大到小排列的(如果大小一样,按入队顺序)从que.top()就能看出,他不是一个单纯的队列,因为队列应该是用front。优先队列嘛,就是队列。
2024-05-19 23:16:03 270
原创 学习日记:线段树基本操作
4.查询(如果没有全包含在查询区间内,则继续将懒惰标记下发给子结点,并修改结点值)3.添加懒惰标记(如果没有全包含在修改区间内,则继续将懒惰标记下发给子结点)2.建树(没啥特别注意的)
2024-05-18 23:47:11 521 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人