Question
Data Structure Given an unsorted array of n integers numbers (with possible duplicates) in range [1..k]. Implement in Java an algorithm that preprocesses the input
Data Structure
Given an unsorted array of n integers numbers (with possible duplicates) in range [1..k]. Implement in Java an algorithm that preprocesses the input array in O(n+k) running time and then returns how many integer numbers there are in the range [left..right] in O(1) running time for any given left and right, 1 < = left < = right < =k.
Example:
Input: int [ ] a = {3, 8, 2, 4, 1, 9, 11, 4, 15}; //input array
int k = 15; // max element in a
int left = 2; // lower value in range
int right = 9; // upper value in range
Output:
Total number in range [2..9] is 6
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started