LeetCode – 303. Range Sum Query – Immutable


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

Note:

  1. You may assume that the array does not change.
  2. There are many calls to sumRange function.

这道题我看到的时候其实是楞逼的。他并不只是要写算法,而是要写个小程序。

public class NumArray {
    public int[] sums;
    public NumArray(int[] nums) {
        if(nums.length == 0) return;
        sums = new int[nums.length];
        sums[0] = nums[0];
        for(int i=1;i<nums.length;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);
 */

邮件订阅,随时获取更新信息

发表评论

电子邮件地址不会被公开。

This site uses Akismet to reduce spam. Learn how your comment data is processed.