Related Articles
Java Program for Range sum queries without updates
• Difficulty Level : Medium
• Last Updated : 06 Dec, 2018

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)> `

Output:

```9
12
```

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

My Personal Notes arrow_drop_up
Recommended Articles
Page :