- 博客(9)
- 收藏
- 关注
原创 算法基础之滑动窗口
滑动窗口算法是一种常用于解决数组相关问题的技术,特别适用于需要处理连续数据块的情况。其基本思想是创建一个窗口,这个窗口可以是数组或列表的一个子集,随着算法的进行,这个窗口会在整个数据结构上从开始滑动到结束。这种方法可以帮助我们在保持效率的同时解决一系列问题,如计算最大值最小值、查找满足特定条件的子数组等。我觉得滑动窗口可以分为很多种类型,现在我只遇到过两种,以后遇到了在更新。
2024-05-28 22:41:29
457
1
原创 优先队列的注意点及题目
感想:这道题目没有太多技术含量,只需要用一个优先队列每一次维护一个结构体,结构体的成员分别是价格和数量。但是对于初学者的我,有很多可以注意的地方。结构体对象包含多个成员变量,且这些变量在创建对象时需要立即被初始化为特定值时,带参数的构造函数非常有用。这道题目我首先在结构体内定义了带有参数的构造函数。如果我在结构体内定义了带有参数的构造函数,那么我将不能声明一个结构体的数组。如果结构不含带参数的构造函数,那么就简单一点了,结构体代码如下。那么我们可以在某些情况下省略带参数的构造函数,什么时候需要呢?
2024-05-23 10:06:57
267
5
原创 数据结构之并查集
路径压缩是指在执行查找操作的时候,让集合中的每个元素都直接指向根节点,这样可以减少时间复杂度。以下代码实现的是递归来找到某个元素的根节点// 递归查找根节点,同时实现路径压缩// 如果pre[x]不是自己,说明还没有找到根节点练习题.蓝桥幼儿园 - 蓝桥云课 (lanqiao.cn)
2024-05-20 18:11:22
1255
1
原创 二分答案练习题
P1873 [COCI 2011/2012 #5] EKO / 砍树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)对于本道题目,我们考虑用二分答案来枚举锯片的最高高度因为我们不难发现,随着锯片高度的升高,我们所得到的木头的材料是减少的,它们之间存在随着锯片高度升高,得到的木材材料递减的关系。满足单调性,这个时候,我们就可以考虑用二分答案来枚举答案的正确性。
2024-05-19 16:15:12
298
1
原创 算法基础之二分及二分答案
当l=r - 1的时候,如果mid =(l+r)/2,此时mid = l,如果check是true,那就将l = mid = l ,那么就会进入死循环(l < r,while循环无法结束)当mid=(l+r+1)/2,此时,mid = r,如果check为true,l = mid = r,此时while循环结束。不能包含mid,mid在右半部分,肯定不符合性质,所以要从r-1开始查找边界。二分答案和整数二分的不同:二分答案枚举的是答案,整数枚举枚举的是下标。二分的本质并不是单调性,二分的本质是边界。
2024-05-19 15:31:41
806
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人