303. Range Sum Query - Immutable
Easy
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:
- You may assume that the array does not change.
- There are many calls to sumRange function.
package leetcode.easy; class NumArray1 { private int[] data; public NumArray1(int[] nums) { data = nums; } public int sumRange(int i, int j) { int sum = 0; for (int k = i; k <= j; k++) { sum += data[k]; } return sum; } } class NumArray3 { private int[] sum; public NumArray3(int[] nums) { sum = new int[nums.length + 1]; for (int i = 0; i < nums.length; i++) { sum[i + 1] = sum[i] + nums[i]; } } public int sumRange(int i, int j) { return sum[j + 1] - sum[i]; } } /** * Your NumArray object will be instantiated and called as such: NumArray obj = * new NumArray(nums); int param_1 = obj.sumRange(i,j); */ public class RangeSumQueryImmutable { @org.junit.Test public void test1() { int[] nums = { -2, 0, 3, -5, 2, -1 }; NumArray1 obj = new NumArray1(nums); int param_1 = obj.sumRange(0, 2); int param_2 = obj.sumRange(2, 5); int param_3 = obj.sumRange(0, 5); System.out.println(param_1); System.out.println(param_2); System.out.println(param_3); } @org.junit.Test public void test3() { int[] nums = { -2, 0, 3, -5, 2, -1 }; NumArray3 obj = new NumArray3(nums); int param_1 = obj.sumRange(0, 2); int param_2 = obj.sumRange(2, 5); int param_3 = obj.sumRange(0, 5); System.out.println(param_1); System.out.println(param_2); System.out.println(param_3); } }
原文地址:https://www.cnblogs.com/denggelin/p/11786009.html
时间: 2024-11-05 11:52:05