精选分类

文章列表

2.8k3 分钟

# 一、题目描述(LeetCode 1.两数之和) 给定一个整数数组 nums 和一个整数目标值 target,在数组中找出和为目标值的两个整数,并返回它们的数组下标。 约束条件: 每种输入只会对应一个答案 不能使用两次相同的元素 可按任意顺序返回答案 示例: 输入:nums = [2,7,11,15], target = 9,输出:[0,1] 输入:nums = [3,2,4], target = 6,输出:[1,2] 输入:nums = [3,3], target = 6,输出:[0,1] # 二、
1.6k1 分钟

# 一、题目要求 给定未排序整数数组,找出数字连续的最长序列长度 要求时间复杂度 O(n) 例:[100,4,200,1,3,2] → 最长序列 [1,2,3,4] → 输出 4 # 二、最优解法思路 # 核心思想 HashSet 去重 + O (1) 查找 只从连续序列的起点开始遍历(保证 O (n)) 起点判断:num - 1 不在集合中 # 算法步骤 将数组存入 HashSet 去重 遍历每个数字,判断是否为起点 若是起点,向后查找连续数字,统计长度 更新最大长度并返回 # 三、Java 代码 class Solution { public int long
5.7k5 分钟

# 一、题目描述(LeetCode 11.盛最多水的容器) 给定一个长度为 n 的整数数组 height。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。 说明:你不能倾斜容器。 约束条件: n == height.length 2 <= n <= 10^5 0 <= height[i] <= 10^4 示例: 输入:height = [1,8
4.4k4 分钟

# 一、题目描述(LeetCode 283.移动零) 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 要求:必须在原数组上操作,不能拷贝额外的数组。 约束条件: 1 <= nums.length <= 10^4 -2^31 <= nums[i] <= 2^31 - 1 示例: 输入:nums = [0,1,0,3,12],输出:[1,3,12,0,0] 输入:nums = [0],输出:[0] # 二、两种解题思路 & Java代码
14k13 分钟

2026-06-09🌱上海: ☀️ 🌡️+82°F 🌬️SE6mph # mu-ai-agent-4 # 前言 在前面的文章中,我们用 MessageChatMemoryAdvisor 让 AI 助手具备了"记住上下文"的能力 — 它能记住你之前问了什么,对话不再"断片"。但当时用的是 InMemoryChatMemoryRepository,所有对话都存在内存里,应用一重启就全丢了。 这对于一个真正要上线的应用来说显然不行。这篇文章就来深入聊聊 Spring AI 的聊天记忆持久化:它是怎么设计的、为什么序列化 Message 对象会比想象中复
9.8k9 分钟

2026-06-07🌱上海: ☀️ 🌡️+79°F 🌬️N8mph # mu-ai-agent-3 # 前言 默认情况下,大模型返回的是一段纯文本字符串。但在实际开发中,我们往往需要把 AI 的输出转换成 Java 对象来使用 — 比如存入数据库、返回给前端、做进一步的业务处理。 Spring AI 提供了 entity() 方法来实现这个需求,底层由 BeanOutputConverter 驱动,能自动根据你的 Java 类生成 JSON Schema 并附加到 prompt 中,让模型返回符合格式的 JSON,再自动反序列化为对象。 这次围绕"面试指导"场景,测
9.9k9 分钟

2026-06-07🌱上海: ☀️ 🌡️+79°F 🌬️N8mph # mu-ai-agent-2 # 前言 在 Spring AI 的 ChatClient 体系中,Advisor 是一套非常优雅的拦截器机制,类似于 Spring MVC 的 Interceptor 或 Servlet 的 Filter。它可以让你在 AI 请求发送前和响应返回后插入自定义逻辑,而不需要改动业务代码。 这次的需求是:在用户输入发给 AI 模型之前,检查是否包含敏感词,如果有则替换为 ***。通过实现一个 SensitiveWordAdvisor,顺便把 Advisor 链的底层原理摸了一遍。 # A
1.9k2 分钟

2026-06-05🌱上海: 🌤️ 🌡️+78°F 🌬️←12mph 开发中,有多种方式可以在应用程序中调用AI大模型。下面介绍4种主流的接入方式。 # SDK接入 引入POM依赖 <!-- Source: https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java --> <dependency> <groupId>com.alibaba</groupId> &
1k1 分钟

# 日记 2026-04-20 # 今日学习 # PriorityQueue 源码 — 二叉堆 今天重新复习了 Java PriorityQueue 的源码实现,核心是基于**二叉堆(Binary Heap)**的数据结构。 二叉堆是一种完全二叉树,用数组顺序存储,节点索引关系: 父节点: (k - 1) / 2 左子: 2k + 1 右子: 2k + 2 PriorityQueue 从下标 1 开始存储(跳过 0),简化了子节点计算。 # Claude Code 三大维度设计深度解析 深入学习了阿里云开发者公众号发布的 Claude Code 设计解析文章,收获很大。 文章
7.7k7 分钟

# Thesis Project Generator - 开发日记 #4 # 前言 本次开发完成了两个重要任务:1) 将 MinIO 替换为腾讯 COS,统一文件存储方案;2) 重构 AI 客户端架构,支持自定义中转站 API。同时对后端整体完成度进行了分析确认。 # 一、技术栈统一分析 # 1.1 问题发现 在审查项目时发现以下不一致: CLAUDE.md 文档写 PostgreSQL,实际使用 MySQL MinIO 配置存在但代码中只有 TODO 注释,从未真正实现 用户建议使用腾讯 COS 替代 MinIO # 1.2 决定方案 组件 原计划 实际方案 数据库 Po