Range Sum Query — Leetcode
1 min readApr 27, 2023
Topic: Array
Difficulty: Easy
Question Number: 303
Problem statement:
Given an integer array nums
, handle multiple queries of the following type:
- Calculate the sum of the elements of
nums
between indicesleft
andright
inclusive whereleft <= right
.
Implement the NumArray
class:
NumArray(int[] nums)
Initializes the object with the integer arraynums
.int sumRange(int left, int right)
Returns the sum of the elements ofnums
between indicesleft
andright
inclusive (i.e.nums[left] + nums[left + 1] + ... + nums[right]
).
Example 1:
/Input
["NumArray", "sumRange", "sumRange", "sumRange"]
[[[-2, 0, 3, -5, 2, -1]], [0, 2], [2, 5], [0, 5]]
Output
[null, 1, -1, -3]
Explanation
NumArray numArray = new NumArray([-2, 0, 3, -5, 2, -1]);
numArray.sumRange(0, 2); // return (-2) + 0 + 3 = 1
numArray.sumRange(2, 5); // return 3 + (-5) + 2 + (-1) = -1
numArray.sumRange(0, 5); // return (-2) + 0 + 3 + (-5) + 2 + (-1) = -3
Code:
in java-
class NumArray {
int[] n;
public NumArray(int[] nums) {
n=new int[nums.length];
n[0]=nums[0];
for(int i=1;i<nums.length;i++){
n[i]=nums[i]+n[i-1];
}
}
public int sumRange(int left, int right) {
if(left==0){
return n[right];
}
else{
return n[right]-n[left-1];
}
}
}
Thank you
Oshi Raghav