- 博客(39)
- 收藏
- 关注
原创 KMP算法
实现 strStr() 函数:给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1: 输入: haystack = “hello”, needle = “ll” 输出: 2示例 2: 输入: haystack = “aaaaa”, needle = “bba” 输出: -1说明: 当 needle 是空字符串时,应当返回0。
2026-03-25 19:50:25
385
原创 网关登录校验
本文深入探讨了在微服务架构下,利用 Spring Cloud Gateway 的响应式拦截器实现 JWT 统一鉴权,并巧妙结合 ThreadLocal 与 Feign 拦截器,构建了一套从网关到业务服务的“全链路用户信息透传”方案。通过解析 mutate 机制与 Header 接力原理,彻底解决了分布式环境下的身份丢失与上下文获取难题。
2026-03-23 12:04:04
652
原创 右旋字符串
字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。例如,对于输入字符串 “abcdefg” 和整数 2,函数应该将其转换为 “fgabcde”。输入:输入共包含两行,第一行是一个正整数 k,代表右旋转的位数。第二行为字符串 s,代表需要旋转的字符串。输出:输出共一行,为进行了右旋转操作后的字符串。2abcdefg样例输出:fgabcde。
2026-03-23 10:58:41
38
原创 反转字符串中的单词
给定一个字符串,逐个翻转字符串中的每个单词,不要使用辅助空间,空间复杂度要求为O(1)。示例 1:输入: “the sky is blue”输出: “blue is sky the”示例 2:输入: " hello world!输出: “world!hello”解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: “a good example”输出: “example good a”
2026-03-21 14:51:23
27
原创 基于 Redis BitMap 实现用户签到
在 Redis 中,BitMap(位图) 并不是一种全新的数据类型,而是一组基于 String 数据类型的位级操作。你可以把它想象成一个巨大的二进制数组,数组的每个位置(Offset)只能存储 0 或 1。
2026-03-20 15:28:55
784
原创 数字的替换
给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。例如,对于输入字符串 “a1b2c3”,函数应该将其转换为 “anumberbnumbercnumber”。对于输入字符串 “a5b”,函数应该将其转换为 “anumberb”输入:一个字符串 s,s 仅包含小写字母和数字字符。输出:打印一个新的字符串,其中每个数字字符都被替换为了number样例输入:a1b2c3样例输出:anumberbnumbercnumber。
2026-03-20 10:35:35
15
原创 关注推送-Feed流
本文介绍基于Redis ZSet的Feed流推模式,通过推送笔记到粉丝收件箱并利用时间戳分页拉取,实现高效、稳定的关注页动态列表。
2026-03-19 20:19:00
838
原创 反转字符串
给定一个字符串 s 和一个整数 k,从字符串开头算起, 每计数至 2k 个字符,就反转这 2k 个字符中的前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例:输入: s = “abcdefg”, k = 2输出: “bacdfeg”
2026-03-19 09:45:06
28
原创 三数之和。
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0?请你找出所有满足条件且不重复的三元组。注意: 答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ]
2026-03-16 15:02:21
34
原创 赎金信(哈希实现)
给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。如果可以构成,返回 true;否则返回 false。题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。
2026-03-14 13:04:46
16
原创 四数相加Ⅱ
给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500。所有整数的范围在 -2^28 到 2^28 - 1 之间,最终结果不会超过 2^31 - 1。例如:输入:输出:2。
2026-03-13 09:11:25
45
原创 两数之和。
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]
2026-03-12 10:36:21
170
原创 基于Stream消息队列的异步秒杀业务
本文介绍基于Lua脚本和Redis消息队列的秒杀接口,通过原子操作确保库存安全与一人一单,异步处理提升性能,代码结构清晰,适合学习秒杀设计思想。
2026-03-11 15:41:55
1688
原创 快乐数的判断
编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True;不是,则返回 False。
2026-03-11 09:32:13
21
原创 有效的字母异位词
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1: 输入: s = “anagram”, t = “nagaram” 输出: true示例 2: 输入: s = “rat”, t = “car” 输出: false你可以假设字符串只包含小写字母。
2026-03-09 10:20:50
43
原创 两链表相交
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构。
2026-03-07 10:38:38
31
原创 基于redis实现登录校验
本文介绍Spring Boot项目基于手机验证码的登录实现,包括验证码发送、Redis存储、用户登录与创建、拦截器校验Token及ThreadLocal数据共享,确保安全高效。
2026-03-06 11:02:45
1388
1
原创 双向链表的java实现
笔者认为实现这些方法的关键在于对修改后的指针的改变,由于是双向链表,既要确保新节点的前后指针指向正确,又要保证其前后节点将新节点正确连接。再有就是对边界情况,即链表头尾的操作,可以定义两个哨兵来简化边界问题。
2026-03-03 21:32:59
18
原创 移除链表元素
除链表中等于给定值 val 的所有节点。示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]示例 2: 输入:head = [], val = 1 输出:[]示例 3: 输入:head = [7,7,7,7], val = 7 输出:[]
2026-03-02 16:46:21
25
原创 大一上碎碎念
最终也是通过了第一轮考核的筛选,但在之后的考核中我深感无力,发现走硬件不仅学习曲线陡峭,而且学习资源也少,我觉得对于我这样不够自律的人来说走不了,恰好,通信的学长也还推荐转码(以前的我认为只有计算机,软工这些对口的专业才能去学编程,那时太过无知)更好的是,泥邮算得上是计算机强校,跟有红岩蓝山这样的优秀社团。
2026-03-02 13:15:06
253
原创 OSS云服务使用指南
alioss:endpoint::后面的参数一定要以自己的为准,笔者这里推荐将密钥和ID设为环境变量,程序运行时自动从环境变量中读取,安全性较高。
2026-02-26 17:23:21
647
原创 开发商购买土地
在一个城市区域内,被划分成了n * m个连续的区块,每个区块都拥有不同的权值,代表着其土地价值。目前,有两家开发公司,A 公司和 B 公司,希望购买这个城市区域的土地。现在,需要将这个城市区域的所有区块分配给 A 公司和 B 公司。然而,由于城市规划的限制,只允许将区域按横向或纵向划分成两个子区域,而且每个子区域都必须包含一个或多个区块。为了确保公平竞争,你需要找到一种分配方式,使得 A 公司和 B 公司各自的子区域内的土地总价值之差最小。注意:区块不可再分。【输入描述】
2026-02-26 12:50:46
408
原创 SpringBoot异常处理机制
在一个复杂而又庞大的项目中分开处理可能出现的异常显然不现实,SpringBoot就为我们提供了一套优雅的解决方案–全局异常处理器。借助全局异常处理器可以统一处理项目运行时可能出现的异常。
2026-02-25 23:59:41
353
原创 区间和(前缀和思想)
给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和。输入描述第一行输入为整数数组 Array 的长度 n,接下来 n 行,每行一个整数,表示数组的元素。随后的输入为需要计算总和的区间,直至文件结束。输出描述输出每个指定区间内元素的总和。输入示例。
2026-02-25 16:18:42
55
原创 WebSocket入门
WebSocket 是基于 TCP 的一种新的。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建的连接, 并进行数据传输。
2026-02-24 21:17:27
569
原创 螺旋矩阵Ⅱ
给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]
2026-02-24 15:47:53
218
原创 长度最小的子数组
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。
2026-02-21 01:52:58
56
原创 Redis在Spring Boot中的应用
本文介绍Spring Data Redis操作Redis的配置与使用,并讲解Spring Cache通过注解简化缓存开发的实现方式。
2026-02-18 22:23:30
860
原创 Apache POI
本文介绍Apache POI在Java中读写Excel文件的入门案例,涵盖应用场景(报表导出、批量导入)及具体代码实现,包括写入数据生成Excel和读取Excel文件数据。
2026-02-12 22:34:32
372
原创 Spring MVC消息转换器的扩展
文章阐述通过扩展Spring MVC消息转换器,自定义Jackson对象映射器,全局统一LocalDateTime序列化格式,避免为每个实体类属性添加@JsonFormat注解,简化开发并提升效率。
2026-02-11 22:25:33
393
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅