范围求和
实现需求
给一个数组long arr[] = {3,4,7,1,6,8,1,36,8,9…,n},, 设计一个函数返回 l~r 范围的求和 。 long rangeSum(int l, int r){ … }
方式1:一维数组
定义一个一维数组 sum[0,1…,m,n] ; sum[m]存放数组0 ~ m的和,sum[n]存放数组0~n的和;计算从 m~n 的和:sum[n] - sum[m-1];
static class RangeSum1 {
long[] sum;
public RangeSum1(long[] arr) {
// 初始化一维数组
sum = new long[arr.length];
sum[0] = arr[0];
for (int i = 1; i < arr.length; i++) {
sum[i] = arr