Minimum value of K such that Bitwise XOR of K with all array elements is minimum

By | January 30, 2023

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.

Author: Mithlesh Upadhyay

I hold an M.Tech degree in Artificial Intelligence (2023) from Delhi Technological University (DTU) and possess over 4 years of experience. I worked at GeeksforGeeks, leading teams and managing content, including GATE CS, Test Series, Placements, C, and C++. I've also contributed technical content to companies like MarsDev, Tutorialspoint, StudyTonight, TutorialCup, and Guru99. My skill set includes coding, Data Structures and Algorithms (DSA), and Object-Oriented Programming (OOPs). I'm proficient in C++, Python, JavaScript, HTML, CSS, Bootstrap, React.js, Node.js, MongoDB, Django, and Data Science.