# 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[0]);`   `    ``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)

Share your thoughts in the comments