算法理解:
1)用一个和数组记录前几个元素的和;
sum[0]---(0,0)的和;
sum[1]-- (0,1)的和;
sum[n]---(0,n)的和;
sum[j]-sum[i-1]---(i,j)的和,相当于前j项和减去前i-1项的和,即为题目所求
以下算法转载于:http://blog.csdn.net/xudli/article/details/49763033
public class NumArray {
int[] sums;
public NumArray(int[] nums) {
sums = new int[nums.length];
System.arraycopy(nums, 0, sums, 0, nums.length);
for(int i=1; i<sums.length; i++) {
sums[i] += sums[i-1];
}
}
public int sumRange(int i, int j) {
if(i>j || i<0 || j<0 || j>=sums.length) return 0;
return i==0 ? sums[j] : (sums[j] - sums[i-1]);
}
}