青山木

青山木

Hot 100 --- 矩阵置零
发表于2026-06-16|LeetCode 热题 HOT 100|算法•leetcode•矩阵•原地算法
本文以LeetCode经典题目"矩阵置零"为例,从最容易踩的坑入手,逐步优化空间复杂度,从O(mn)到O(m+n)再到O(1)原地变换,系统讲解如何用第一行和第一列作为标记数组实现原地置零
Hot 100 --- 缺失的第一个正数
发表于2026-06-15|LeetCode 热题 HOT 100|算法•leetcode•数组•原地哈希
本文以LeetCode经典题目"缺失的第一个正数"为例,从暴力解法入手,逐一分析哈希表和排序两种常见优化思路为何不满足O(n)时间+O(1)空间的要求,再引出原地哈希解法,系统讲解如何利用数组本身作为哈希表,将元素放到正确的位置上
Hot 100 --- 除自身以外数组的乘积
发表于2026-06-14|LeetCode 热题 HOT 100|算法•leetcode•数组•前缀积•空间换时间
本文以LeetCode经典题目"除自身以外数组的乘积"为例,从暴力解法入手,分析不能使用除法导致的重复计算问题,再通过空间换时间的方式用右累计乘积数组优化,将时间复杂度从O(n²)优化到O(n)
Hot 100 --- 轮转数组
发表于2026-06-13|LeetCode 热题 HOT 100|双指针•算法•leetcode•数组•翻转
本文以LeetCode经典题目"轮转数组"为例,从暴力解法入手,逐步优化到O(n)额外空间的解法,再通过三次翻转法实现O(1)空间复杂度的原地修改,系统讲解如何用红黑笔的比喻理解三次翻转的巧妙之处
Hot 100 --- 合并区间
发表于2026-06-12|LeetCode 热题 HOT 100|算法•leetcode•数组•排序
本文以LeetCode经典题目"合并区间"为例,从暴力解法入手,分析其必须遍历全部剩余数组的原因,再通过排序将"未知"变为"已知",系统讲解如何利用排序后天然满足的重叠判断条件,将时间复杂度从O(n²)优化到O(n log n)
一文吃透 Spring AI Alibaba RAG:三种架构模式 + 全流程优化详解
发表于2026-06-11|agent|RAG•Spring AI Alibaba•大语言模型•实战•教程
系统讲解 RAG 核心原理与替代方案(Skill、MCP、Wiki)的取舍,详细拆解 Spring AI Alibaba 三种 RAG 架构模式(两步 RAG、Agentic RAG、混合 RAG)与四阶段全链路优化(Pre-Retrieval 查询压缩与扩展、Retrieval 向量检索、Post-Retrieval 重排序与压缩、Generation 上下文增强),并提供 ReactAgent 钩子、FunctionToolCallback 多工具调用等完整可运行代码示例。
Hot 100 --- 最大子数组和
发表于2026-06-10|LeetCode 热题 HOT 100|算法•leetcode•动态规划•贪心
本文以LeetCode经典题目"最大子数组和"为例,从暴力解法入手,利用前缀和优化到维护最小前缀和的O(n)解法,再从动态规划角度重新理解,系统讲解如何利用"前数组和是否对当前元素有贡献"这一关键判断,将时间复杂度从O(n²)优化到O(n)
Hot 100 --- 最小覆盖子串
发表于2026-06-08|LeetCode 热题 HOT 100|双指针•算法•leetcode•哈希表•滑动窗口
本文以LeetCode经典题目"最小覆盖子串"为例,从暴力解法入手,逐步优化到双指针滑动窗口解法,重点讲解如何通过match变量动态维护哈希表的匹配状态,避免每次遍历比较,将时间复杂度从O(n²×m)优化到O(n)
Hot 100 --- 滑动窗口最大值
发表于2026-06-06|LeetCode 热题 HOT 100|算法•leetcode•滑动窗口•单调队列•双端队列
本文以LeetCode经典题目"滑动窗口最大值"为例,从暴力优化解法入手,分析其在递减数组下的最坏情况,再逐步优化到双端单调递减队列解法,系统讲解如何动态维护一个只保留可能成为最大值的候选队列,将时间复杂度从O(nk)优化到O(n)
Hot 100 --- 和为 K 的子数组
发表于2026-06-05|LeetCode 热题 HOT 100|算法•leetcode•哈希表•前缀和
本文以LeetCode经典题目"和为K的子数组"为例,从暴力解法入手,逐步优化到前缀和+哈希表解法,系统讲解如何利用前缀和将子数组和转化为两个前缀和之差,再通过哈希表将时间复杂度从O(n²)优化到O(n)
1…10111213
avatar
青山木
正在学习Java后端开发+智能体开发,希望能与大家多多交流
文章
122
标签
295
分类
9
Follow Me
公告
欢迎来到我的博客,记录学习与成长的点滴。
最新文章
无标题
无标题2026-11-05
多线程为什么会读到旧值?从 CPU 缓存、JMM 到 volatile 的全链路拆解
多线程为什么会读到旧值?从 CPU 缓存、JMM 到 volatile 的全链路拆解2026-11-01
RAG为什么答不出全局性和关联性问题? GraphRAG 与 LightRAG 全链路拆解
RAG为什么答不出全局性和关联性问题? GraphRAG 与 LightRAG 全链路拆解2026-10-29
RAG 为什么总答不准?从切块到混合检索的全链路拆解
RAG 为什么总答不准?从切块到混合检索的全链路拆解2026-10-20
Java 并发基础全解:从进程与线程到多线程、线程安全与死锁
Java 并发基础全解:从进程与线程到多线程、线程安全与死锁2026-10-16
分类
  • Java3
  • LeetCode 热题 HOT 10084
  • RAG2
  • Redis1
  • agent8
  • 博客搭建1
  • 后端开发22
    • RocketMQ6
标签
Rebalance 工作流 缓存穿透 RocketMQ 原地哈希 实体消歧 线程池 PBAC 翻转 Java 双端队列 重试 volatile Redis Top K 回文 二叉树 LFU Cache Aside BM25 双向链表 分治 Canal Lua Graph Gossip 实战 GitHub Pages quicklist 布隆过滤器 模拟 BFS 顺序写 Docker 半消息 有序矩阵 Checklist PageCache LRU 底层数据结构
归档
  • 十一月 2026 2
  • 十月 2026 9
  • 九月 2026 33
  • 八月 2026 9
  • 七月 2026 35
  • 六月 2026 29
  • 五月 2026 1
  • 四月 2026 4
网站信息
文章数目 :
122
最后更新时间 :
© 2025 - 2026 By 青山木框架 Hexo 7.3.0|主题 Butterfly 5.5.4