leetcode 303. Range Sum Query

来源:互联网 发布:js设置input失去焦点 编辑:程序博客网 时间:2024/06/05 06:02

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); */
原创粉丝点击