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!