- 博客(28)
- 收藏
- 关注
原创 Redis淘汰策略
最近最少使用,用当前时间减去最近一次访问时间,这个值越大淘汰优先级越高。:最少频率使用,统计每个key访问频率,值越小淘汰优先级越高。默认是noevicition策略,根据不同的业务逻辑选择使用。
2025-05-23 22:04:50
289
原创 Redis删除策略
定时任务,默认执行频率10hz,每次不超过25ms,通过redis.conf配置。:不固定频率,间隔不低于2ms,每次耗时不超过1ms。:对CPU友好,使用该数据时才会查询重建。:对内存不友好,会占用大量内存。
2025-05-23 21:55:01
373
原创 缓存穿透 击穿 雪崩
逻辑过期:不设置过期时间,缓存时添加一个过期的字段,下次访问时如果过期则返回旧数据,然后重新查数据库。互斥锁:先用setnx设置一个互斥锁,开启新线程查数据库重建缓存,操作成功后再返回数据。:可能造成缓存和数据库数据不一致,消耗内存。:内存友好,缓存没有多余的key。:实现复杂,容易误判。
2025-05-23 21:46:29
221
原创 17. 电话号码的字母组合 dfs
其中 private final List<String> ans = new ArrayList<>();不能声明为静态变量 否则会报错。注意static的使用 全局变量的生命周期跟随整个类 为类内所有成员访问同一个变量 会有问题。
2024-08-13 20:21:51
248
原创 AcWing 802. 区间和 离散化
为什么这里二分写int mid = (l + (r - l)) >> 1;就会TLE 而改为int mid = (l + r) >> 1;就AC(换成 / 也是一样的) 不懂。
2024-08-12 23:01:24
325
原创 AcWing795. 前缀和
原数组: a[1], a[2], a[3], a[4], a[5], …前缀和: S[i] = a[1] + a[2] + a[3] + …前缀和 Si为数组的前 i项和。
2024-08-10 21:52:10
297
1
原创 790. 数的三次方根 二分
这里面的a,b要根据具体二分的范围来指定,对于c的值,如果题目中要求保留4位小数,c取1e-6,如果题目中要求保留6位小数,那c取1e-8。
2024-08-10 21:10:36
187
原创 对递归的理解(可以逆向解决一些问题)
递归即调用函数本身,传递到递归的基本情况后停止开始归。于是可以用来解决一些需要逆向才能解决的问题,比如说:“整数转二进制”,“逆序输出字符串”等等。
2023-12-17 21:59:30
1105
1
原创 二分查找(整数二分通用模板)
给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 00 开始计数)。如果数组中不存在该元素,则返回-1 -1。
2023-12-15 22:06:28
514
原创 归并排序 (dfs深度理解)
然后递归地对左半部分和右半部分分别进行排序,在左右两部分排好序后,定义两个指针(注意不是真正意义上的指针,是两个标记,可以理解为数组的下标)。一个指向左半部分的首记为 i,另一个指向右半部分的首记为 j,比较q[ i ]和q[ j ]两个位置上数组元素的大小,如果q[ i ]
2023-12-14 16:38:19
1218
1
原创 头歌 谁考了第k名 (结构体数组的排序)
接下来就是排序问题,这里想到用sort排序,先要添加一个头文件#include<algorithm>,写结构体需要注意很多细节,sort()后面的参数中不能使用数组下标,而是用数组名+n,最后用一个bool函数判断大小。因为刚开始的sort函数不会用,没有传入第三个参数,一直报错,所以想到直接用冒泡写,这里注意因为冒泡排序函数中传入的数组本身就是地址,会直接修改地址位置上的数值,所以不需要返回值,void定义即可。在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第。
2023-12-12 09:00:02
710
原创 头歌 数位组合之八(函数中返回地址时怎么写)
本关任务:函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。注意:请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 中填入你编写的若干语句。
2023-12-11 23:12:30
609
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅