java

8 篇文章
设计模式实战:用 Java 优雅实现适配器模式解决接口不兼容

设计模式实战:用 Java 优雅实现适配器模式解决接口不兼容

在日常的系统开发或重构中,我们经常会遇到这样的尴尬场景:系统需要引入一个新的第三方库,或者需要兼容一个老旧的遗留系统。但是,这些外部或老旧系统的代码往往与我们当前系统内部的标准接口不一致。甚至在很多历史遗留项目中,压根就没有定义接口规范,业务逻辑被死死地硬编码在具体的类中。 如果我们直接修改现有的核

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,请你将 字母异位词 组合在一起。可以按任意顺序返回结果

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

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

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