Java Program for Range sum queries without updates

Given an array arr of integers of size n. We need to compute sum of elements from index i to index j. The queries consisting of i and j index values will be executed multiple times.

Examples:

Input : arr[] = {1, 2, 3, 4, 5} i = 1, j = 3 i = 2, j = 4 Output : 9 12 Input : arr[] = {1, 2, 3, 4, 5} i = 0, j = 4 i = 1, j = 2 Output : 15 5

`// Java program to find sum between two indexes ` `// when there is no update. ` ` ` `import` `java.util.*; ` `import` `java.lang.*; ` ` ` `class` `GFG { ` ` ` `public` `static` `void` `preCompute(` `int` `arr[], ` `int` `n, ` `int` `pre[]) ` ` ` `{ ` ` ` `pre[` `0` `] = arr[` `0` `]; ` ` ` `for` `(` `int` `i = ` `1` `; i < n; i++) ` ` ` `pre[i] = arr[i] + pre[i - ` `1` `]; ` ` ` `} ` ` ` ` ` `// Returns sum of elements in arr[i..j] ` ` ` `// It is assumed that i <= j ` ` ` `public` `static` `int` `rangeSum(` `int` `i, ` `int` `j, ` `int` `pre[]) ` ` ` `{ ` ` ` `if` `(i == ` `0` `) ` ` ` `return` `pre[j]; ` ` ` ` ` `return` `pre[j] - pre[i - ` `1` `]; ` ` ` `} ` ` ` ` ` `public` `static` `void` `main(String[] args) ` ` ` `{ ` ` ` `int` `arr[] = { ` `1` `, ` `2` `, ` `3` `, ` `4` `, ` `5` `}; ` ` ` `int` `n = arr.length; ` ` ` ` ` `int` `pre[] = ` `new` `int` `[n]; ` ` ` ` ` `preCompute(arr, n, pre); ` ` ` `System.out.println(rangeSum(` `1` `, ` `3` `, pre)); ` ` ` `System.out.println(rangeSum(` `2` `, ` `4` `, pre)); ` ` ` `} ` `} ` ` ` `// Code Contributed by Mohit Gupta_OMG <(0_o)> ` |

*chevron_right*

*filter_none*

**Output:**

9 12

Please refer complete article on Range sum queries without updates for more details!