Minimum Inversions
FULLTIME
Given an array of n integers, arr[n], find the value of x that can be applied to the array to minimize the number of inversions. The array can be modified by applying the bitwise XOR to each element of the array with x . The symbol ⊕ means XOR in the example.
An inversion in an array arr is a pair of indices (i, j) where i > j and arr[i] < arr[j] .
Function Description
Complete the function findMinInversions in the editor below.
findMinInversions has the following parameter:
- int arr[n] : the array
Returns
int : the minimum possible number of inversions after modifying the array with integer x
Example 1 :
Input: arr = [8, 5, 2]
Output: 0
Explanation:
See the image above
In the first row, after the elements are XORed with 4, there are two
inversions.
For [i, j] = [1, 0], and arr[0] = 1 and arr[1] = 12.
For [i, j] = [2, 0], arr[0] = 6 and arr[1] = 12.
For x = 12 the number of inversions is 0. This is the minimum possible, so
the answer is 0.
Example 2 :
Input: arr = [0, 8, 2, 4]
Output: 1
Explanation:
Constraints:
Get one-to-one training from Google Facebook engineers
Top-notch Professionals
Learn from Facebook and Google senior engineers interviewed 100+ candidates.
Most recent interview questions and system design topics gathered from aonecode alumnus.
One-to-one online classes. Get feedbacks from real interviewers.
Customized Private Class
Already a coding expert? - Advance straight to hard interview topics of your interest.
New to the ground? - Develop basic coding skills with your own designated mentor.
Days before interview? - Focus on most important problems in target company question bank.