码迷,mamicode.com
首页 > 其他好文 > 详细

Range Sum Query - Immutable

时间:2017-10-24 14:06:37      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:function   you   clu   style   query   color   log   logs   param   

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) -> -3Note:
  1. You may assume that the array does not change.
  2. There are many calls to sumRange function.

想了想怎么可能有这么简单的题

那么重点在这句:There are many calls to sumRange function.

因此要考虑效率,那么自然考虑动态规划

class NumArray {
    private int[] sums;
    public NumArray(int[] nums) {
        sums = new int[nums.length];
        for(int i=0;i<nums.length;i++) {
               if(i==0) sums[i]=nums[i];
               sums[i] = sums[i-1]+nums[i];
        }
    }
    
    public int sumRange(int i, int j) {
           if(i==0) return sums[j];
           return sums[j]-sums[i-1];
    }
}

/**
 * Your NumArray object will be instantiated and called as such:
 * NumArray obj = new NumArray(nums);
 * int param_1 = obj.sumRange(i,j);
 */

 

Range Sum Query - Immutable

标签:function   you   clu   style   query   color   log   logs   param   

原文地址:http://www.cnblogs.com/swuwyb/p/7722979.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!