 Open in App
Not now

# Check if the array has an element which is equal to XOR of remaining elements

• Last Updated : 05 Sep, 2022

Given an array arr[] of N elements, the task is to check if the array has an element which is equal to the XOR of all the remaining elements.
Examples:

Input: arr[] = { 8, 2, 4, 15, 1 }
Output: Yes
8 is the required element as 2 ^ 4 ^ 15 ^ 1 = 8.
Input: arr[] = {4, 2, 3}
Output: No

Approach: First, take the XOR of all the elements of the array and store it in a variable xorArr. Now traverse the complete array again and for every element, calculate the xor of the array elements excluding the current element arr[i] i.e. x = xorArr ^ arr[i]
If x = arr[i] then arr[i] is the required element and hence print Yes. If no such element is found then print No.
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;` `// Function that returns true if the array``// contains an element which is equal to``// the XOR of the remaining elements``bool` `containsElement(``int` `arr[], ``int` `n)``{` `    ``// To store the XOR of all``    ``// the array elements``    ``int` `xorArr = 0;``    ``for` `(``int` `i = 0; i < n; ++i)``        ``xorArr ^= arr[i];` `    ``// For every element of the array``    ``for` `(``int` `i = 0; i < n; ++i) {` `        ``// Take the XOR after excluding``        ``// the current element``        ``int` `x = xorArr ^ arr[i];` `        ``// If the XOR of the remaining elements``        ``// is equal to the current element``        ``if` `(arr[i] == x)``            ``return` `true``;``    ``}` `    ``// If no such element is found``    ``return` `false``;``}` `// Driver code``int` `main()``{``    ``int` `arr[] = { 8, 2, 4, 15, 1 };``    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr);` `    ``if` `(containsElement(arr, n))``        ``cout << ``"Yes"``;``    ``else``        ``cout << ``"No"``;` `    ``return` `0;``}`

## Java

 `// Java implementation of the approach``class` `GFG``{``    ` `// Function that returns true if the array``// contains an element which is equal to``// the XOR of the remaining elements``static` `boolean` `containsElement(``int` `[] arr, ``int` `n)``{` `    ``// To store the XOR of all``    ``// the array elements``    ``int` `xorArr = ``0``;``    ``for` `(``int` `i = ``0``; i < n; ++i)``        ``xorArr ^= arr[i];` `    ``// For every element of the array``    ``for` `(``int` `i = ``0``; i < n; ++i)``    ``{` `        ``// Take the XOR after excluding``        ``// the current element``        ``int` `x = xorArr ^ arr[i];` `        ``// If the XOR of the remaining elements``        ``// is equal to the current element``        ``if` `(arr[i] == x)``            ``return` `true``;``    ``}` `    ``// If no such element is found``    ``return` `false``;``}` `// Driver code``public` `static` `void` `main (String[] args)``{``    ``int` `[] arr = { ``8``, ``2``, ``4``, ``15``, ``1` `};``    ``int` `n = arr.length;` `    ``if` `(containsElement(arr, n))``        ``System.out.println(``"Yes"``);``    ``else``        ``System.out.println(``"No"``);``}``}` `// This code is contributed by ihritik`

## Python3

 `# Python3 implementation of the approach` `# Function that returns true if the array``# contains an element which is equal to``# the XOR of the remaining elements``def` `containsElement(arr, n):` `    ``# To store the XOR of all``    ``# the array elements``    ``xorArr ``=` `0``    ``for` `i ``in` `range``(n):``        ``xorArr ^``=` `arr[i]` `    ``# For every element of the array``    ``for` `i ``in` `range``(n):` `        ``# Take the XOR after excluding``        ``# the current element``        ``x ``=` `xorArr ^ arr[i]` `        ``# If the XOR of the remaining elements``        ``# is equal to the current element``        ``if` `(arr[i] ``=``=` `x):``            ``return` `True` `    ``# If no such element is found``    ``return` `False` `# Driver Code``arr ``=` `[``8``, ``2``, ``4``, ``15``, ``1``]``n ``=` `len``(arr)` `if` `(containsElement(arr, n)):``    ``print``(``"Yes"``)``else``:``    ``print``(``"No"``)` `# This code is contributed by Mohit Kumar`

## C#

 `// C# implementation of the approach``using` `System;``class` `GFG``{``    ` `// Function that returns true if the array``// contains an element which is equal to``// the XOR of the remaining elements``static` `bool` `containsElement(``int` `[] arr, ``int` `n)``{` `    ``// To store the XOR of all``    ``// the array elements``    ``int` `xorArr = 0;``    ``for` `(``int` `i = 0; i < n; ++i)``        ``xorArr ^= arr[i];` `    ``// For every element of the array``    ``for` `(``int` `i = 0; i < n; ++i)``    ``{` `        ``// Take the XOR after excluding``        ``// the current element``        ``int` `x = xorArr ^ arr[i];` `        ``// If the XOR of the remaining elements``        ``// is equal to the current element``        ``if` `(arr[i] == x)``            ``return` `true``;``    ``}` `    ``// If no such element is found``    ``return` `false``;``}` `// Driver code``public` `static` `void` `Main ()``{``    ``int` `[] arr = { 8, 2, 4, 15, 1 };``    ``int` `n = arr.Length;` `    ``if` `(containsElement(arr, n))``        ``Console.WriteLine(``"Yes"``);``    ``else``        ``Console.WriteLine(``"No"``);``}``}` `// This code is contributed by ihritik`

## Javascript

 ``

Output:

`Yes`

Time complexity: O(n) where n is size of input array

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up