Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.
Example:
Given nums = [-2, 0, 3, -5, 2, -1]
sumRange(0, 2) -> 1
sumRange(2, 5) -> -1
sumRange(0, 5) -> -3
题意很简单,就是一个基本的求和问题,要是直接求的化,肯定超时,所以可以使用DP的思想。
代码如下:
import java.util.ArrayList;
import java.util.List;
/*
* 这里的求和部分使用的的是DP部分,不能直接求和,会超时的
* */
public class NumArray
{
List<Integer> list=new ArrayList<Integer>();
public NumArray(int[] nums)
{
if(nums==null || nums.length<=0)
return ;
list.add(nums[0]);
for(int i=1;i<nums.length;i++)
list.add(nums[i]+list.get(i-1));
}
public int sumRange(int i, int j)
{
if(list.size()<=0|| i<0 || i>=list.size() || j<0 || j>list.size())
return 0;
if(i==0)
return list.get(j);
else
return list.get(j)-list.get(i-1);
}
}
/**
* Your NumArray object will be instantiated and called as such:
* NumArray obj = new NumArray(nums);
* int param_1 = obj.sumRange(i,j);
*/