- 博客(211)
- 收藏
- 关注
原创 快速幂学习笔记
学习视频:算法讲解098【必备】快速幂、矩阵快速幂与两类问题,假设现在要求 a 的 b 次方,最简单的做法就是遍历相乘。但是这样一来时间复杂度就变成了 O(b),如果要求的是 2 的 10000 次方,那么就需要循环遍历 10000 次,性能就比较低了,当然这里认为乘法的时间复杂度是 O(1) 的。乘法快速幂的核心就是通过二进制来加速,假设现在我们要求 2 的 13 次方,13(10)=1101(2)13_{(10)}= 1101_{(2)}13(10)=1101(2),那么 a13=a20+22+2
2026-05-06 20:22:54
356
原创 字符串哈希学习笔记
算法讲解105【扩展】字符串哈希原理、代码、题目详解,字符串哈希(String Hash)是一种将字符串映射为一个固定长度整数的技术,广泛应用于数据结构(如哈希表、HashMap)、数据校验、密码学、缓存、去重等场景。在算法中主要就是将一个字符串转成 long 类型的 hash 值方便去重,但是有一个缺点就是不同字符串的 hash 值有可能相同。一般来说如果要存储 hash 值,就需要考虑如何处理重复的部分,像 HashMap 就是用链表 + 红黑树来存储 hash 相同的 key。
2026-05-06 20:22:29
356
原创 【RocketMQ 生产者和消费者】- 事务源码分析(2)
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 消费者启动源码【RocketMQ 生产者和消费者】- 消费者重平衡(1)【RocketMQ 生产者和消费者】- 消费者重平衡(2)- 分配策略【RocketMQ 生产者和消费者】- 消费者重平衡(3)- 消费者 ID 对负载均衡的影响【RocketMQ 生产者和消费者】- 消费者的订阅关系一致性。
2026-05-05 22:25:16
508
原创 【RocketMQ 生产者和消费者】- 事务源码分析(1)
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 消费者启动源码【RocketMQ 生产者和消费者】- 消费者重平衡(1)【RocketMQ 生产者和消费者】- 消费者重平衡(2)- 分配策略【RocketMQ 生产者和消费者】- 消费者重平衡(3)- 消费者 ID 对负载均衡的影响【RocketMQ 生产者和消费者】- 消费者的订阅关系一致性。
2026-05-05 22:24:53
363
原创 【RocketMQ 生产者和消费者】- 事务消息的使用
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 消费者启动源码【RocketMQ 生产者和消费者】- 消费者重平衡(1)【RocketMQ 生产者和消费者】- 消费者重平衡(2)- 分配策略【RocketMQ 生产者和消费者】- 消费者重平衡(3)- 消费者 ID 对负载均衡的影响【RocketMQ 生产者和消费者】- 消费者的订阅关系一致性。
2026-03-13 23:57:43
575
原创 【RocketMQ 生产者消费者】- 延时消息原理解析-ScheduleMessageService
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 消费者启动源码【RocketMQ 生产者和消费者】- 消费者重平衡(1)【RocketMQ 生产者和消费者】- 消费者重平衡(2)- 分配策略【RocketMQ 生产者和消费者】- 消费者重平衡(3)- 消费者 ID 对负载均衡的影响【RocketMQ 生产者和消费者】- 消费者的订阅关系一致性。
2026-03-13 23:57:20
662
4
原创 【RocketMQ 生产者和消费者】- 延时消息的使用
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 消费者启动源码【RocketMQ 生产者和消费者】- 消费者重平衡(1)【RocketMQ 生产者和消费者】- 消费者重平衡(2)- 分配策略【RocketMQ 生产者和消费者】- 消费者重平衡(3)- 消费者 ID 对负载均衡的影响【RocketMQ 生产者和消费者】- 消费者的订阅关系一致性。
2025-10-02 21:52:04
889
原创 【RocketMQ 生产者和消费者】- sendMessageBack 发送重试消息
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 消费者启动源码【RocketMQ 生产者和消费者】- 消费者重平衡(1)【RocketMQ 生产者和消费者】- 消费者重平衡(2)- 分配策略【RocketMQ 生产者和消费者】- 消费者重平衡(3)- 消费者 ID 对负载均衡的影响【RocketMQ 生产者和消费者】- 消费者的订阅关系一致性。
2025-10-02 21:51:33
925
原创 【RocketMQ 生产者和消费者】- ConsumeMessageOrderlyService 顺序消费消息
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 消费者启动源码【RocketMQ 生产者和消费者】- 消费者重平衡(1)【RocketMQ 生产者和消费者】- 消费者重平衡(2)- 分配策略【RocketMQ 生产者和消费者】- 消费者重平衡(3)- 消费者 ID 对负载均衡的影响【RocketMQ 生产者和消费者】- 消费者的订阅关系一致性。
2025-08-10 23:10:20
1015
原创 【RocketMQ 生产者和消费者】- ConsumeMessageConcurrentlyService 并发消费消息
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 消费者启动源码【RocketMQ 生产者和消费者】- 消费者重平衡(1)【RocketMQ 生产者和消费者】- 消费者重平衡(2)- 分配策略【RocketMQ 生产者和消费者】- 消费者重平衡(3)- 消费者 ID 对负载均衡的影响【RocketMQ 生产者和消费者】- 消费者的订阅关系一致性。
2025-08-10 23:09:36
884
原创 【RocketMQ 生产者和消费者】- 消费者处理消息拉取结果
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 消费者启动源码【RocketMQ 生产者和消费者】- 消费者重平衡(1)【RocketMQ 生产者和消费者】- 消费者重平衡(2)- 分配策略【RocketMQ 生产者和消费者】- 消费者重平衡(3)- 消费者 ID 对负载均衡的影响【RocketMQ 生产者和消费者】- 消费者的订阅关系一致性。
2025-08-10 23:01:53
1067
原创 【RocketMQ 生产者和消费者】- broker 处理消息拉取请求
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 消费者启动源码【RocketMQ 生产者和消费者】- 消费者重平衡(1)【RocketMQ 生产者和消费者】- 消费者重平衡(2)- 分配策略【RocketMQ 生产者和消费者】- 消费者重平衡(3)- 消费者 ID 对负载均衡的影响【RocketMQ 生产者和消费者】- 消费者的订阅关系一致性。
2025-08-03 19:34:57
1095
原创 线段树学习笔记 - 摩尔投票问题
线段树学习笔记线段树学习笔记 - 练习题(1)线段树学习笔记 - 练习题(2)线段树学习笔记 - 练习题(3)线段树学习笔记 - 动态开点线段树线段树学习笔记 - 区间最值操作线段树学习笔记 - 扫描线问题左程云算法讲解116【扩展】摩尔投票大加强,线段树里捉海王。首先看下什么是摩尔投票问题,直接看百度,摩尔投票法(Moore’s Voting Algorithm)是一种用于在数组中寻找多数元素的高效算法。多数元素是指在数组中出现次数超过一半的元素。摩尔投票法通过消除不同元素之间的对抗来找到可能的多数元素。
2025-08-03 19:32:58
1159
原创 线段树学习笔记 - 扫描线问题
线段树学习笔记线段树学习笔记 - 练习题(1)线段树学习笔记 - 练习题(2)线段树学习笔记 - 练习题(3)线段树学习笔记 - 动态开点线段树线段树学习笔记 - 区间最值操作左程云算法讲解115【扩展】线段树专题6-线段树与扫描线结合的题目。
2025-08-03 19:31:10
707
原创 线段树学习笔记 - 区间最值操作
线段树系列文章:上一篇文章学习了这个视频的动态开点线段树,这篇文章来继续学习,学习视频:算法讲解114【扩展】线段树专题5-开点线段树、区间最值和历史最值,题目都是左神视频上的,思路也是学习的这个视频。假设现在有一道题目,需要支持下面几种操作:上面 2 和 3 就是范围最大值和范围累加和查询,这个可以用 max 数组和 sum 数组完成,但是第一种操作就比较麻烦了,比如原数组是 ,下标从 1 开始,然后现在要将 范围的下标更新为 ,更新之后的结果是 。为了解决这个问题,这里引入一个 sem 数组维护严格次
2025-08-03 19:30:43
1092
原创 线段树学习笔记 - 动态开点线段树
线段树学习笔记。线段树学习笔记 - 练习题(1)。线段树学习笔记 - 练习题(2)。线段树学习笔记 - 练习题(3)。算法讲解114【扩展】线段树专题5-开点线段树、区间最值和历史最值,题目都是左神视频上的,思路也可以看这个视频。
2025-07-27 10:55:46
1152
原创 线段树学习笔记 - 练习题(3)
线段树学习笔记。线段树学习笔记 - 练习题(1)。线段树学习笔记 - 练习题(2)。算法讲解113【扩展】线段树专题4-线段树解决区间合并的问题,题目都是左神视频上的,思路也可以看这个视频。
2025-07-25 23:03:14
634
原创 线段树学习笔记 - 练习题(2)
线段树学习笔记。线段树学习笔记 - 练习题(1)。算法讲解112【扩展】线段树专题3-线段树维护更多类型的信息,题目都是左神视频上的,思路也可以看这个视频。
2025-07-24 23:21:04
1132
原创 线段树学习笔记 - 练习题(1)
线段树学习笔记。算法讲解111【扩展】线段树专题2-线段树的离散化、二分搜索、特别修改,题目都是左神视频上的,思路也可以看这个视频。
2025-07-23 22:48:43
779
原创 【RocketMQ 生产者和消费者】- broker 是如何处理消费者消息拉取的 Netty 请求的
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 消费者启动源码【RocketMQ 生产者和消费者】- 消费者重平衡(1)【RocketMQ 生产者和消费者】- 消费者重平衡(2)- 分配策略【RocketMQ 生产者和消费者】- 消费者重平衡(3)- 消费者 ID 对负载均衡的影响【RocketMQ 生产者和消费者】- 消费者的订阅关系一致性。
2025-07-20 21:23:11
826
原创 【RocketMQ 生产者和消费者】- 消费者发起消息拉取请求 PullMessageService
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 消费者启动源码【RocketMQ 生产者和消费者】- 消费者重平衡(1)【RocketMQ 生产者和消费者】- 消费者重平衡(2)- 分配策略【RocketMQ 生产者和消费者】- 消费者重平衡(3)- 消费者 ID 对负载均衡的影响【RocketMQ 生产者和消费者】- 消费者的订阅关系一致性前几篇文章我们探讨了消费者重平衡的源码,在这篇文章。
2025-07-20 21:22:49
1169
原创 【分布式 ID】详解百度 uid-generator(源码篇)
【分布式 ID】生成唯一 ID 的几种方式。【分布式 ID】一文详解美团 Leaf【分布式 ID】详解百度 uid-generator(基础篇)。
2025-07-20 21:21:40
1009
原创 【分布式 ID】详解百度 uid-generator(基础篇)
【分布式 ID】生成唯一 ID 的几种方式。【分布式 ID】一文详解美团 Leaf。
2025-07-20 21:20:54
1981
原创 【分布式 ID】一文详解美团 Leaf
【分布式 ID】生成唯一 ID 的几种方式。前一篇文章我们介绍了分布式 ID 生成的几种方式,这篇文章就来看下美团开源项目 Leaf 是如何生成 ID 的。Leaf 这个名字是来自德国哲学家、数学家莱布尼茨的一句话:也就是“世界上没有两片相同的树叶”Leaf——美团点评分布式ID生成系统。
2025-06-29 10:31:57
1721
原创 【分布式 ID】生成唯一 ID 的几种方式
分布式 ID 是指在分布式系统中需要生成的全局唯一的标识符。比如在电商、物流等行业,每笔订单都需要一个唯一的订单 ID。通过这个 ID,商家可以跟踪订单的状态,包括下单、支付、发货、签收等环节;用户也可以随时查询自己订单的进度。在金融系统中,每笔交易都有一个唯一的交易 ID。这个 ID 可以用于记录交易的详细信息,如交易时间、交易金额、交易双方等,同时也方便对交易进行审计和对账。总之唯一 ID 在各种场景下用处都比较大,那么如何能够生成一个唯一 ID 呢,有下面几种方案。
2025-06-29 10:31:18
1517
原创 线段树学习笔记
树状数组学习笔记。在前面的文章我们学习了数组数组,也写了一篇学习笔记,树状数组一般就是用于范围增加单点查询,虽然范围增加范围查询也可以做,但是不如线段树方便。而线段树除了能支持范围增加、范围查询,可以支持在 O(logn) 时间内完成多种在线区间操作,例如区间求和、区间最大值、区间最小值、区间重置左程云算法讲解110【扩展】线段树专题1-线段树原理和代码详解。
2025-06-29 10:30:23
745
原创 【RocketMQ 生产者和消费者】- 消费者的订阅关系一致性
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 消费者启动源码【RocketMQ 生产者和消费者】- 消费者重平衡(1)【RocketMQ 生产者和消费者】- 消费者重平衡(2)- 分配策略【RocketMQ 生产者和消费者】- 消费者重平衡(3)- 消费者 ID 对负载均衡的影响上面的文章我们讲解了消费者重平衡的源码以及消费者 ID 对负载均衡的影响,这篇文章我们来看下消费者的订阅关系。
2025-06-22 22:06:58
1040
原创 【RocketMQ 生产者和消费者】- 消费者重平衡(3)- 消费者 ID 对负载均衡的影响
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 消费者启动源码【RocketMQ 生产者和消费者】- 消费者重平衡(1)【RocketMQ 生产者和消费者】- 消费者重平衡(2)- 分配策略上两篇文章讲解了消费者重平衡的源码以及几种重平衡策略,这篇文章我们来看下消费者 ID 对重平衡的影响。
2025-06-22 22:06:23
954
原创 【RocketMQ 生产者和消费者】- 消费者重平衡(2)- 分配策略
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 消费者启动源码【RocketMQ 生产者和消费者】- 消费者重平衡(1)上一篇讲解了消费者重平衡的入口和大致源码,还剩下一点 RocketMQ 的几个重平衡策略。
2025-06-17 22:40:47
1121
原创 【RocketMQ 生产者和消费者】- 消费者重平衡(1)
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 消费者启动源码上一篇文章中我们探讨了消费者的启动,这里就来看下消费者的重平衡逻辑,所谓重平衡,就是消费者对订阅的 topic 下面的队列重分配,topic 下面有不同的 MessageQueue,这些队列有可能会存储到不同的 broker 上,消费者消费的时候会消费分配到的 MessageQueue 下面的消息,分配的过程就是重平衡。
2025-06-17 22:40:08
1283
原创 【RocketMQ 生产者和消费者】- 消费者启动源码
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息上面几篇文章我们探讨了生产者的启动和发送消息的源码,这篇文章开始我们就来看下消费者的启动源码,也开始消费者的源码分析。
2025-06-14 15:37:06
925
原创 树状数组学习笔记
首先就是树状数组解决了什么问题,对于前缀和我们就知道可以用来解决范围查询问题,而如果是差分就可以用来解决 k 次范围修改之后这个数组会变成什么样这类的问题。
2025-06-08 22:08:36
1177
原创 【差分】详解二维前缀和和差分问题
大家也可以注意下,这里我们算影响范围算前缀和的时候没有让 i,j 都 + 1,也就是没有像第 3 小节那个题目那样计算前缀和,因为 d 数组本身为了不越界需要 + 1 处理,所以为了方便计算,前缀和也没有 + 1,只是在原来的数组上进行前缀和,也就是定义 sum[i][j] 为以 i,j 为右下角的区域的前缀和。以 sum[2][2] 为例子,下面图中蓝色部分代表 sum[2][1],绿色部分代表 sum[1][2],红色部分代表 sum[1][1]。根据这个定义,现在给一下 sum 数组的结构。
2025-06-08 22:07:16
1303
原创 【RocketMQ 生产者和消费者】- broker 处理生产者发送的消息
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 生产者发送同步、异步、单向消息源码分析(1)【RocketMQ 生产者和消费者】- 生产者发送同步、异步、单向消息源码分析(2)上面两篇文章讲述了生产者发送消息的整个流程,包括消息重试,消息重传,这篇文章就来看下 broker 是如何处理生产者的消息的。
2025-06-08 15:24:04
1015
原创 【RocketMQ 生产者和消费者】- 生产者发送同步、异步、单向消息源码分析(2)
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 生产者发送同步、异步、单向消息源码分析(1)上一篇文章从生产者发送源码方法开始讲述了同步、异步、单向发送的流程,这篇文章来看下异步回调是如何处理的。
2025-06-01 13:00:20
725
原创 【RocketMQ 生产者和消费者】- 生产者发送同步、异步、单向消息源码分析(1)
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息上面几篇文章我们介绍了生产的启动流程,这篇文章就来介绍下生产者发送消息的流程,首先就是最常见的同步消息了。
2025-06-01 12:59:39
886
原创 【RocketMQ 生产者和消费者】- 生产者发送故障延时策略
在看生产者源码之前,先来看下 RocketMQ 的发送故障延时策略,具体的容错策略均在MQFaultStrategy 这个类中定义。生产者发送消息的时候需要先查询出 topic 的路由信息,然后通过 selectOneMessageQueue 方法选择 messageQueueList 中的一个消息队列来发送消息。
2025-05-25 22:16:47
1175
原创 【RocketMQ 生产者和消费者】- 生产者启动源码 - MQClientInstance 定时任务(4)
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 生产者启动源码-启动流程(1)【RocketMQ 生产者和消费者】- 生产者启动源码-创建 MQClientInstance(2)【RocketMQ 生产者和消费者】- 生产者启动源码-上报生产者和消费者心跳信息到 broker(3)上面几篇文章我们介绍了生产的启动流程,这篇文章就来看下生产者启动的时候在 MQClientInstance 里面通过。
2025-05-24 22:32:32
1076
1
原创 【RocketMQ 生产者和消费者】- 生产者启动源码-上报生产者和消费者心跳信息到 broker(3)
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 生产者启动源码-启动流程(1)【RocketMQ 生产者和消费者】- 生产者启动源码-创建 MQClientInstance(2)上两篇文章中我们探讨了生产者的启动流程,这篇文章就来看下生产者启动之后如何发送心跳信息到 broker。
2025-05-22 21:30:53
486
原创 【RocketMQ 生产者和消费者】- 生产者启动源码-创建 MQClientInstance(2)
【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 生产者启动源码-启动流程(1)上一篇文章我们探讨了生产者启动流程的大纲,当然还遗留了一些方法没有深入,这篇文章就来讲一下 MQClientInstance。在生产者启动的时候会去创建一个 MQClientInstance,而这个方法是生产者和消费者都会去调用的。
2025-05-22 21:29:42
824
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅