Leetcode:303. Range Sum Query - Immutable(JAVA)

来源:互联网 发布:mac迅雷速度为0 编辑:程序博客网 时间:2024/04/28 10:33

【问题描述】

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

【思路】

典型的动态规划问题,通过存储sums[i]代表nums[0]到nums[i]的和。

注意构造sums[]时,考虑边界条件,即nums.length()为0时。

NumArray(int[] nums)

【code】

public class NumArray {int[] sums;public NumArray(int[] nums) {sums = new int[nums.length];System.arraycopy(nums, 0, sums, 0, nums.length);for (int i = 1; i < nums.length; i++) {sums[i] = sums[i - 1] + nums[i];}}public int sumRange(int i, int j) {return i == 0 ? sums[j] : sums[j] - sums[i - 1];}}// Your NumArray object will be instantiated and called as such:// NumArray numArray = new NumArray(nums);// numArray.sumRange(0, 1);// numArray.sumRange(1, 2); 


0 0
原创粉丝点击