Given an array of N elements, the task is to find the minimum value of K such that Bitwise XOR of K with all array elements is minimum
Input: arr[] 16 12 20 18 Output: 16 Explanation: 16^16+12^16+20^16+18^16 =26 Minimum sum
Explanation:
- Check every bit of the numbers and count number of one and zero
- For minimum sum, we have to swap all the one’s bit to the zero
- If the number of ones is greater than the number of zeros set the position to the one otherwise skip the set i.e mark zero
Java code implementation :
//Importing libraries
import java.io.*;
class Main {
//Function to check minimumvalue
static void minimumvalue(int arr[]) {
int ans = 0;
//Iterate the loop till the limit of the integer
for (int index = 0; index < 32; ++index) {
int ones = 0;
int zeros = 0;
for (int index1 = 0; index1 < arr.length; ++index1) {
//Check every element bit
if ((arr[index1] & (1 << index)) != 0) {
++ones;
} else {
++zeros;
}
}
if (ones > zeros) {
//Set the bit to the answer
ans += (1 << index);
}
}
//Print the answer
System.out.println(ans);
}
public static void main(String[] args) {
int arr[] = {
15,
12,
13,
17
};
minimumvalue(arr);
}
}
Output:
13
Please write comments below if you find anything incorrect, or you want to share more information about the topic discussed above. A gentle request to share this topic on your social media profile.
