Dynamic planning Issues
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), 1sumRange (2, 5)-1sumrange (0, 5)-3
Note:
1.assume that thearray does is not a change.
2.There is many calls to sumrange function.
Personal Summary: See NOTE2 should think this is a dynamic programming problem, each call to calculate will definitely time out, so should be in advance to calculate all the results.
In addition, some special cases, such as Nuns=[],i or J, may cross the border and should be taken into account.
AC Code Public classnumarray{int[] array,sum; PublicNumarray (int[] nums) { if(nums.length==0| | nums==NULL)return; Array=Nums; Sum=Nums; sum[0]=array[0]; for(inti=1;i<array.length;i++) {Sum[i]=sum[i-1]+Array[i]; } } Public intSumrange (intIintj) { if(sum==NULL|| i>j| | J>sum.length)return0; Else { if(i==0)returnSum[j]; Else returnSum[j]-sum[i-1]; } } }
Range Sum query-immutable