Dada una array arr[] que contiene N enteros positivos, la tarea es agregar un entero tal que el Xor bit a bit de la nueva array se convierta en K.
Ejemplos:
Entrada: arr[] = {1, 4, 5, 6}, K = 4
Salida: 2
Explicación: el XOR bit a bit de la array es 6.
Y el XOR bit a bit de 6 y 2 es 4.Entrada: arr[] = {2, 7, 9, 1}, K = 5
Salida: 8
Enfoque: La solución al problema se basa en la siguiente idea de Xor bit a bit:
Si para dos números X e Y , el Xor bit a bit de X e Y es Z , entonces el Xor bit a bit de X y Z es Y.
Siga los pasos para resolver el problema:
- Deje que el XOR bit a bit de los elementos de la array sea X .
- Digamos que el valor requerido para ser agregado es Y tal que X Xor Y = K .
- De la observación anterior, es claro que el valor a agregar (Y) es el mismo que X X o K .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ code to implement the above approach #include <bits/stdc++.h> using namespace std; // Function to find the required value int find_K(int K, vector<int>& arr) { int XOR = 0; // Find XOR of all the array elements for (int i = 0; i < arr.size(); i++) XOR ^= arr[i]; // K = XOR^N, where N is size of array return XOR ^ K; } // Drivers code int main() { int K = 4; vector<int> arr = { 1, 4, 5, 6 }; // Function call cout << find_K(K, arr); return 0; }
Java
// Java code to implement the above approach import java.io.*; class GFG { // Function to find the required value public static int find_K(int K, int arr[]) { int XOR = 0; // Find XOR of all the array elements for (int i = 0; i < arr.length; i++) XOR ^= arr[i]; // K = XOR^N, where N is size of array return XOR ^ K; } // Driver Code public static void main(String[] args) { int K = 4; int arr[] = { 1, 4, 5, 6 }; // Function call System.out.print(find_K(K, arr)); } } // This code is contributed by Rohit Pradhan
Python3
# Python code to implement the above approach # Function to find the required value def find_K(K, arr): XOR = 0 # Find XOR of all the array elements for i in range(len(arr)): XOR ^= arr[i] # K = XOR^N, where N is size of array return XOR ^ K # Drivers code K = 4 arr = [ 1, 4, 5, 6 ] # Function call print(find_K(K, arr)) # This code is contributed by shinjanpatra
C#
// C# code to implement the above approach using System; class GFG { // Function to find the required value static int find_K(int K, int[] arr) { int XOR = 0; // Find XOR of all the array elements for (int i = 0; i < arr.Length; i++) XOR ^= arr[i]; // K = XOR^N, where N is size of array return XOR ^ K; } // Driver Code public static int Main() { int K = 4; int[] arr = new int[] { 1, 4, 5, 6 }; // Function call Console.Write(find_K(K, arr)); return 0; } } // This code is contributed by Taranpreet
Javascript
<script> // JavaScript code to implement the above approach // Function to find the required value const find_K = (K, arr) => { let XOR = 0; // Find XOR of all the array elements for (let i = 0; i < arr.length; i++) XOR = (XOR ^ arr[i]); // K = XOR^N, where N is size of array return (XOR ^ K); } // Drivers code let K = 4; let arr = [1, 4, 5, 6]; // Function call document.write(find_K(K, arr)); // This code is contributed by rakeshsahni </script>
2
Complejidad del tiempo:O(N)
Espacio Auxiliar:O(1)
Publicación traducida automáticamente
Artículo escrito por ishankhandelwals y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA