Agregue un elemento en Array para hacer el XOR bit a bit como K

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>
Producción

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *