303. Range Sum Query - Immutable

2017-09-26  本文已影响0人  namelessEcho

存储之前要用到的每一个有限状态机的状态(即前N个数的和)典型的DP思想。

class NumArray {
    int[] temp ;
    int[] sum ;
    public NumArray(int[] nums) {
        temp=nums;
        if(temp!=null&&temp.length>0)
        sum= sumAll(temp);
    }
    
    public int sumRange(int i, int j) {
        if(temp.length==0)
            return 0;
        int val1 = i==0? 0:sum[i-1];
        int val2 = sum[j];
        return val2-val1;
    }
    private int[] sumAll (int[] temp)
    {
        int[] result = new int[temp.length];
        result[0]=temp[0];
        for(int i = 1 ;i<result.length;i++)
        {
            result[i]=result[i-1]+temp[i];
        }
        return result ;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读