树状数组 java模板(纯代码)
2022-04-04 15:39
561 查看
public class TrieNums { int n; /*Nums start from 0*/ int[] storage; /*TrieNums index start from 1*/ int[] treeNums; int query(int index){ int ans = 0; for(int i=index; i > 0; i -= getLowBit(i)) ans += treeNums[i]; return ans; } void add(int index, int increase){ for(int i = index; i <= n; i += getLowBit(i)) treeNums[i] += increase; } public TrieNums(int[] nums){ this.storage = nums; this.n = nums.length; this.treeNums = new int[n + 1]; for (int i = 0; i < n; i++) add(i + 1, storage[i]); } public void update(int index, int val){ add(index + 1, val - storage[index]); storage[index] = val; } public int sumRange(int left, int right){ return query(right +1) - query(left); } public static int getLowBit(int index){ return index & (-index); } }
相关文章推荐
- Java面试题:1-100之间的数,被放在数组a[99]中,有一个数没有包含在其中,用java代码找出这个数
- Java面试题:1-100之间的数,被放在数组a[99]中,有一个数没有包含在其中,用java代码找出这个数
- JSP的代码模板(java 版)
- Java面试题:1-100之间的数,被放在数组a[99]中,有一个数没有包含在其中,用java代码找出这个数
- JAVA代码注释模板 (转)
- Java高质量代码之数组与集合
- [编写高质量代码:改善java程序的151个建议]建议65 避开基本类型数组转换列表陷阱
- Java面试题:有数组a[n],用java代码将数组元素顺序颠倒
- 详解 Eclipse 中的快速 Java 编码(代码模板)
- myEclipse使用的一些小技巧(如java代码的模板配置,覆盖已在的括号,浏览jsp快捷配置)
- java 代码细节(返回零长度的数组或者集合,而不是null)
- java代码将数组元素顺序颠倒输出
- java数组输出的实例代码
- eclipse中添加Java代码注释模板
- myeclipse中java代码注释模板问题
- Java面试题:有数组a[n],用java代码将数组元素顺序颠倒
- 创建Java代码模板
- 分享非常有用的Java程序 (关键代码)(四)---动态改变数组的大小
- JAVA代码注释模板
- 【模板】树状数组 01