VOOZH about

URL: https://www.geeksforgeeks.org/dsa/number-elements-less-equal-given-number-given-subarray/

⇱ Numbsubarrayer of elements less than or equal to a given number in a given - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Numbsubarrayer of elements less than or equal to a given number in a given

Last Updated : 23 Jul, 2025

Given an array 'a[]' and number of queries q. Each query can be represented by l, r, x. Your task is to print the number of elements less than or equal to x in the subarray represented by l to r. Examples:

Input : arr[] = {2, 3, 4, 5}
 q = 2
 0 3 5
 0 2 2 
Output : 4
 1
Number of elements less than or equal to
5 in arr[0..3] is 4 (all elements)

Number of elements less than or equal to
2 in arr[0..2] is 1 (only 2)

Naive approach The naive approach for each query traverse the subarray and count the number of elements which are in the given range. 

Efficient Approach The idea is to use-Binary Index Tree. Note in the following steps x is the number according to which you have to find the elements and the subarray is represented by l, r. Step 1: Sort the array in ascending order. Step 2: Sort the queries according to x in ascending order, initialize bit array as 0. Step 3: Start from the first query and traverse the array till the value in the array is less than equal to x. For each such element update the BIT with value equal to 1 Step 4: Query the BIT array in the range l to r 

Output:

1
4

Time Complexity: O((n+q)*log(n))

Auxiliary Space: O(n+q)

Comment