Java Program for Mean of range in array Last Updated : 31 May, 2022 Comments Improve Suggest changes Like Article Like Report Given an array of n integers. You are given q queries. Write a program to print the floor value of mean in range l to r for each query in a new line. Examples : Input : arr[] = {1, 2, 3, 4, 5} q = 3 0 2 1 3 0 4 Output : 2 3 3 Here for 0 to 2 (1 + 2 + 3) / 3 = 2 Input : arr[] = {6, 7, 8, 10} q = 2 0 3 1 2 Output : 7 7Recommended: Please solve it on "PRACTICE" first, before moving on to the solution. Naive Approach: We can run loop for each query l to r and find sum and number of elements in range. After this we can print floor of mean for each query. Java // Java program to find floor value // of mean in range l to r public class Main { // To find mean of range in l to r static int findMean(int arr[], int l, int r) { // Both sum and count are // initialize to 0 int sum = 0, count = 0; // To calculate sum and number // of elements in range l to r for (int i = l; i <= r; i++) { sum += arr[i]; count++; } // Calculate floor value of mean int mean = (int)Math.floor(sum / count); // Returns mean of array // in range l to r return mean; } // Driver program to test findMean() public static void main(String[] args) { int arr[] = { 1, 2, 3, 4, 5 }; System.out.println(findMean(arr, 0, 2)); System.out.println(findMean(arr, 1, 3)); System.out.println(findMean(arr, 0, 4)); } } Output : 2 3 3 Time complexity: O(n*q) where q is the number of queries and n is the size of the array. Here in the above code q is 3 as the findMean function is used 3 times.Auxiliary Space: O(1) Efficient Approach: We can find sum of numbers using numbers using prefix sum. The prefixSum[i] denotes the sum of first i elements. So sum of numbers in range l to r will be prefixSum[r] - prefixSum[l-1]. Number of elements in range l to r will be r - l + 1. So we can now print mean of range l to r in O(1). Java // Java program to find floor value // of mean in range l to r public class Main { public static final int MAX = 1000005; static int prefixSum[] = new int[MAX]; // To calculate prefixSum of array static void calculatePrefixSum(int arr[], int n) { // Calculate prefix sum of array prefixSum[0] = arr[0]; for (int i = 1; i < n; i++) prefixSum[i] = prefixSum[i - 1] + arr[i]; } // To return floor of mean // in range l to r static int findMean(int l, int r) { if (l == 0) return (int)Math.floor(prefixSum[r] / (r + 1)); // Sum of elements in range l to // r is prefixSum[r] - prefixSum[l-1] // Number of elements in range // l to r is r - l + 1 return (int)Math.floor((prefixSum[r] - prefixSum[l - 1]) / (r - l + 1)); } // Driver program to test above functions public static void main(String[] args) { int arr[] = { 1, 2, 3, 4, 5 }; int n = arr.length; calculatePrefixSum(arr, n); System.out.println(findMean(1, 2)); System.out.println(findMean(1, 3)); System.out.println(findMean(1, 4)); } } Output: 2 3 3 Time complexity: O(n+q) where q is the number of queries and n is the size of the array. Here in the above code q is 3 as the findMean function is used 3 times.Auxiliary Space: O(k) where k=1000005. Please refer complete article on Mean of range in array for more details! Comment More infoAdvertise with us Next Article Java Program for Mean of range in array kartik Follow Improve Article Tags : Java Java Programs DSA Arrays array-range-queries prefix-sum +2 More Practice Tags : ArraysJavaprefix-sum Similar Reads Java Program for Range Queries for Frequencies of array elements Given an array of n non-negative integers. The task is to find frequency of a particular element in the arbitrary range of array[]. The range is given as positions (not 0 based indexes) in array. There can be multiple queries of given type. Examples:  Input : arr[] = {2, 8, 6, 9, 8, 6, 8, 2, 11}; l 2 min read Java Program to Find Average of Two Lists To calculate the average of two lists in Java we first need to combine the two lists into one. we can do this using the addAll() method of the ArrayList class. Once you have combined the lists we can calculate the average by summing up all the elements in the combined list and dividing by the total 2 min read Java Program for Find the subarray with least average Given an array arr[] of size n and integer k such that k Examples : Input: arr[] = {3, 7, 90, 20, 10, 50, 40}, k = 3 Output: Subarray between indexes 3 and 5 The subarray {20, 10, 50} has the least average among all subarrays of size 3. Input: arr[] = {3, 7, 5, 20, -10, 0, 12}, k = 2 Output: Subarr 3 min read Java Program to Calculate Standard Deviation The standard deviation is the measure of how spread out numbers are. Its symbol is sigma( Ï ). It is the square root of variance. The task is to calculate the standard deviation of some numbers. Consider an example that consists of 6 numbers and then to calculate the standard deviation, first we nee 3 min read Calculate the Sum and Average of Elements in an ArrayList in Java A Dynamic and Adaptable method for storing and managing collections of elements is to use ArrayList. Finding the total and average of an ArrayList's items is frequently required when working with numerical data that is stored in the list. In this article, we will see how we can sum and find the aver 3 min read Javascript Program for Mean of range in array Given an array of n integers. You are given q queries. Write a program to print the floor value of mean in range l to r for each query in a new line.Examples : Input : arr[] = {1, 2, 3, 4, 5} q = 3 0 2 1 3 0 4 Output : 2 3 3 Here for 0 to 2 (1 + 2 + 3) / 3 = 2 Input : arr[] = {6, 7, 8, 10} q = 2 0 3 3 min read C++ Program for Mean of range in array Given an array of n integers. You are given q queries. Write a program to print the floor value of mean in range l to r for each query in a new line. Examples : Input : arr[] = {1, 2, 3, 4, 5} q = 3 0 2 1 3 0 4 Output : 2 3 3 Here for 0 to 2 (1 + 2 + 3) / 3 = 2 Input : arr[] = {6, 7, 8, 10} q = 2 0 4 min read PHP Program for Mean of range in array Given an array of n integers. You are given q queries. Write a program to print the floor value of mean in range l to r for each query in a new line.Examples : Input : arr[] = {1, 2, 3, 4, 5} q = 3 0 2 1 3 0 4Output : 2 3 3Here for 0 to 2 (1 + 2 + 3) / 3 = 2Input : arr[] = {6, 7, 8, 10} q = 2 0 3 1 2 min read Python3 Program for Mean of range in array Given an array of n integers. You are given q queries. Write a program to print the floor value of mean in range l to r for each query in a new line.Examples : Input : arr[] = {1, 2, 3, 4, 5} q = 3 0 2 1 3 0 4Output : 2 3 3Here for 0 to 2 (1 + 2 + 3) / 3 = 2Input : arr[] = {6, 7, 8, 10} q = 2 0 3 1 3 min read Mean of range in array Given an array arr[] of n integers and q queries represented by an array queries[][], where queries[i][0] = l and queries[i][1] = r. For each query, the task is to calculate the mean of elements in the range l to r and return its floor value. Examples: Input: arr[] = [3, 7, 2, 8, 5] queries[][] = [[ 12 min read Like