学习笔记

0 篇文章
使用 AOP + 自定义注解优雅实现方法级权限校验

使用 AOP + 自定义注解优雅实现方法级权限校验

在日常的后端开发中,接口的权限校验是一个绕不开的话题。相比于在每个 Controller 方法里写一堆 if-else 来判断当前登录用户的角色,使用 自定义注解 + AOP(面向切面编程) 无疑是一种更加优雅、解耦且易于维护的解决方案。 今天这篇文章,我将结合实际项目代码,手把手带你实现一个 @A

LeetCode 283. 移动零:双指针的巧妙运用

LeetCode 283. 移动零:双指针的巧妙运用

在处理数组的原地操作(In-place)问题时,“双指针”技巧是我们必须掌握的核心武器。今天我们通过一道非常经典的 LeetCode 简单题——移动零,来深入理解快慢指针的实战应用。 📝 题目描述 题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

LeetCode 438. 找到字符串中所有字母异位词:我的解题复盘与实践

LeetCode 438. 找到字符串中所有字母异位词:我的解题复盘与实践

在成功解决了“字母异位词分组”之后,我趁热打铁,继续挑战了相关的进阶题目——LeetCode 438. 找到字符串中所有字母异位词。 这篇博客主要记录我基于上一题核心思路的延伸,以及我的原始解法代码。 📝 题目描述 题目:给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这

LeetCode 49. 字母异位词分组:巧用哈希表与排序算法

LeetCode 49. 字母异位词分组:巧用哈希表与排序算法

在日常的业务开发和算法刷题中,字符串处理是一个非常经典的命题。今天和大家分享一道 LeetCode 的中等难度高频题——字母异位词分组。这道题完美契合了“找规律 + 巧用数据结构”的解题思路。 📝 题目描述 题目:给定一个字符串数组 strs,请你将 字母异位词 组合在一起。可以按任意顺序返回结果

告别烦人的相对路径:Vite + VSCode 路径别名配置全指南

告别烦人的相对路径:Vite + VSCode 路径别名配置全指南

在日常的前端开发中 ,我们经常遇到这样的场景:当项目目录嵌套较深时,组件之间的相互引用就会变成一场灾难 。满屏的 ./../../components/Button 不仅让代码看起来杂乱无章,一旦后续调整了文件层级,还需要手动去修改无数个相对路径 。 为了解决这个问题,我们通常会配置 路径别名(Pa

2核2G小内存服务器总是卡死?一招教你用Swap分区彻底解决

2核2G小内存服务器总是卡死?一招教你用Swap分区彻底解决

近在云服务器上部署了几个个人项目,但发现这台入门级的 2核2G(2h2g)服务器经常会出现运行一段时间后莫名其妙卡死、SSH连接断开,甚至后台提示磁盘 I/O 读写异常的情况 😫。 经过一番排查,终于找到了问题的根源,并用一个非常简单的方法彻底解决了。今天就把这次的排坑经验分享出来,希望能帮到同样

LeetCode 3:无重复字符的最长子串(滑动窗口解法)

LeetCode 3:无重复字符的最长子串(滑动窗口解法)

记录一下刷题日常。这道题是非常经典的滑动窗口问题,主要利用双指针维护一个不包含重复字符的“窗口”,配合 HashSet 进行去重。 💡解题思路 定义双指针与集合: 定义 left 和 right 两个指针,初始都指向字符串的开头。再定义一个 HashSet,用来记录当前窗口内出现了哪些字符。 窗口