AI算法 每日算法 — 使用java实现线段树:区间查询与懒标记优化 线段树(Segment Tree)是一种基于分治思想的二叉树形数据结构,能够在 $O(\log n)$ 时间内完成区间查询与单点修改。当引入懒标记(Lazy...
AI算法 每日算法 — 使用java实现莫队算法:区间查询的分块排序与双指针离线优化 引言 在处理大规模区间查询问题时,我们经常会遇到一个困境:单个查询可以用简单的数据结构在 O(n) 或 O(log n) 内完成,但当查询数量达到 10^5...
AI算法 每日算法 — 使用java实现ST表:倍增预处理与O(1)区间最值查询 区间最值查询(Range Minimum/Maximum Query, RMQ)是算法竞赛和工程实践中的高频问题。ST表(Sparse Table,稀疏表)通过倍增预处理,可以在 O(n log n) 的预处理后,以 O(1)...
AI算法 每日算法 — 使用java实现分块算法:区间查询与修改的平方根分解策略 引言 在处理大规模数组的区间查询与修改问题时,线段树与树状数组是常见的高效数据结构。然而,当操作类型复杂、难以用简单的懒标记维护时,分块算法(Sqrt...
AI算法 每日算法 — 使用java实现树状数组:二进制索引与区间查询的O(log n)解法 引言 在竞赛编程和工程实践中,频繁遇到这样的需求:维护一个数组,支持快速修改某个元素的值,以及快速查询某个区间的和。如果使用普通数组,修改是 O(1)...
AI算法 每日算法 — 使用java实现小波树:序列区间第K大与频率统计 一、算法概述 小波树(Wavelet Tree)是一种建立在数组序列上的静态分治数据结构,由西班牙学者 Francisco Claude 于 2008 年提出。它通过在每一个层级上按"当前比特位是 0 还是...