Espada

酸萝卜 ♂ 别吃

近期学习计划

Because I'm an animal, animal-al.

2020年10月开始的学习计划 wdnmd SpringCloud全家桶 先学会使用吧,感觉没什么难度 NIO(Netty) 感觉这个很有趣 EasticSearch相关 梦开始的地方 Docker 重点系统学习 近期不打算花时间了 网红教你设计模式 持续更新 基本完成的计划 wdnmd JUC相关 关键字 Api 多线程、高并发 JVM相关 GC相关 类......

蓄水池抽样

不复习下又快忘了

水塘抽样算法,正好今天的「每日一题」是考这个算法,不写个笔记记录下感觉又快忘完了。 Intro说白了就是有点像时间换空间?在一段超长且长度未知的数据流中,如果需要以一个相同的概率去实时抽样,则需要用到该算法。如果有一个数组 data ,需要随机跳出一个元素,我们之前都是通过 random.nextInt(data.length) 来得到这个元素的下标,从而得到该元素值。但是遇到需要在大小......

数据结构:树状数组

树状数组?批状数组!

Intro首先,树状数组的应用场景在哪里呢?这里摘抄三叶姐题解中的一段: 针对不同的题目,我们有不同的方案可以选择(假设我们有一个数组): 数组不变,求区间和:「前缀和」、「树状数组」、「线段树」多次修改某个数(单点),求区间和:「树状数组」、「线段树」多次修改某个区间,输出最终结果:「差分」多次修改某个区间,求区间和:「线段树」、「树状数组」(看修改区间范围大小)多次将某个区间变成同一个......

力扣杯秋季编程大赛 2021 战队赛

lose together, win together, slay together.

0x00第一次和小伙伴一起参加战队赛,根据以往经验以为只能做出来一题,结果还真就一题。但是第一题实在是太白给了,都不能算题,所以说相当于一题都没做出来。 坐牢 3 小时,不过我对第二题的印象很深刻,之前对于图中判环、跳环的问题一直处理不好,经此一役,不再害怕。 0x01第 0 题:开幕式焰火沾点白给了,一开始觉得应该没这么简单,还反复检查确认,多少沾点懦弱哥了,递归一套就完事了。 12345......

LeetCode #1986 完成任务的最少工作时间段

LeetCode 第 256 场周赛

Problem Description你被安排了 n 个任务。任务需要花费的时间用长度为 n 的整数数组 tasks 表示,第 i 个任务需要花费 tasks[i] 小时完成。一个 工作时间段 中,你可以 至多 连续工作 sessionTime 个小时,然后休息一会儿。 你需要按照如下条件完成给定任务: 如果你在某一个时间段开始一个任务,你需要在 同一个 时间段完成它。 完成一个任务后,......

LeetCode #1981 最小化目标值与所选元素的差

LeetCode 第 255 场周赛

Problem Description给你一个大小为 m x n 的整数矩阵 mat 和一个整数 target 。 从矩阵的 每一行 中选择一个整数,你的目标是 最小化 所有选中元素之 和 与目标值 target 的 绝对差 。 返回 最小的绝对差 。 a 和 b 两数字的 绝对差 是 a - b 的绝对值。 note m == mat.length n == mat[i].length 1......

Redis 笔记十

Q:Redis主从同步与故障切换,有哪些坑?故障一:主从数据不一致因为主从库间的命令复制是异步进行的。 一方面,主从库间的网络可能会有传输延迟,所以从库不能及时地收到主库发送的命令,从库上执行同步命令的时间就会被延后。 另一方面,即使从库及时收到了主库的命令,但是,也可能会因为正在处理其它复杂度高的命令(例如集合操作命令)而阻塞。 解决方法 首先,在硬件环境配置方面,我们要尽量保证主从库间的......

Redis 笔记九

Q:单机上的锁和分布式锁的联系与区别对于在单机上运行的多线程程序来说,锁本身可以用一个变量表示。 变量值为 0 时,表示没有线程获取锁; 变量值为 1 时,表示已经有线程获取到锁了。 和单机上的锁类似,分布式锁同样可以用一个变量来实现。客户端加锁和释放锁的操作逻辑,也和单机上的加锁和释放锁操作逻辑一致:加锁时同样需要判断锁变量的值,根据锁变量值来判断能否加锁成功;释放锁时需要把锁变量值设......

Redis 笔记八

Q:什么是缓存污染那什么是缓存污染呢?在一些场景下,有些数据被访问的次数非常少,甚至只会被访问一次。当这些数据服务完访问请求后,如果还继续留存在缓存中的话,就只会白白占用缓存空间。这种情况,就是缓存污染。 如何解决缓存污染?LRU 的不足:因为只看数据的访问时间,使用 LRU 策略在处理扫描式单次查询操作时,无法解决缓存污染。所谓的扫描式单次查询操作,就是指应用对大量的数据进行一次全体读取,......

Redis 笔记七

Q:缓存异常(上):解决缓存和数据库的数据不一致问题缓存和数据库的数据不一致是如何发生的?首先,我们得清楚“数据的一致性”具体是啥意思。其实,这里的“一致性”包含了两种情况: 缓存中有数据,那么,缓存的数据值需要和数据库中的值相同; 缓存中本身没有数据,那么,数据库中的值必须是最新值。 不符合这两种情况的,就属于缓存和数据库的数据不一致问题了。 对于读写缓存来说,如果要对数据进行增删......