Open In App

Find single in an array of 2n+1 integer elements

Last Updated : 20 Jul, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

Given an array with 2n+1 integers, n elements appear twice in arbitrary places in the array and a single integer appears only once somewhere inside. Find the lonely integer with O(n) operations and O(1) extra memory.

Examples : 

Input : { 1, 1, 2, 2, 3, 3, 4, 4, 5}
Output : 5

Input : { 7, 9, 6, 8, 3, 7, 8, 6, 9}
Output : 3

The idea is to do XOR of all elements. XOR of all elements gives us the result. The idea is based on below XOR properties. 

  1. XOR of a number with itself is 0.
  2. XOR of a number with 0 is the number.

Implementation:

C++
// CPP program to find only 
// element in an array where 
// every element appears twice.
#include <bits/stdc++.h>
using namespace std;

// Find non repeating 
// number in an array
int findNonRepeating(int arr[], 
                     int n)
{
    int res = 0;
    for (int i = 0; i < n; i++)
        res = res ^ arr[i];
    return res;
}

// Driver Code
int main()
{
    int arr[] = { 3, 8, 3, 2, 2, 1, 1 };
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << findNonRepeating(arr, n);
    return 0;
}
Java
// Java program to find only element 
// in an array where every element
// appears twice.
import java.io.*;

class GFG 
{

// Find non repeating 
// number in an array 
static int findNonRepeating(int []arr, 
                            int n)
{
    int res = 0;
    for (int i = 0; i < n; i++)
        res = res ^ arr[i];
    return res;
}

// Driver Code
static public void main (String[] args)
{
int []arr = {3, 8, 3, 2, 2, 1, 1};
int n = arr.length;
System.out.println(findNonRepeating(arr, n));
}
}

// This code is contributed by vt_m.
Python
# Find non repeating
# number in an array

def findNonRepeating(a, n):
    res = 0
    
    # XOR of all numbers
    for i in range(n):
        res ^= a[i] 
    return res 
    
# Driver code 
a = [ 3, 8, 3, 2, 2, 1, 1 ] 
n = len(a) 

print findNonRepeating(a, n) 

# This code is contributed 
# by 'Striver'.
C#
// C# program to find only element 
// in an array where every element
// appears twice.
using System;

class GFG 
{

// Find non repeating number in an array 
static int findNonRepeating(int []arr, 
                            int n)
{
    int res = 0;
    for (int i = 0; i < n; i++)
        res = res ^ arr[i];
    return res;
}

// Driver Code
static public void Main (String []args)
{
int []arr = {3, 8, 3, 2, 2, 1, 1};
int n = arr.Length;
Console.WriteLine(findNonRepeating(arr, 
                                   n));
}
}

// This code is contributed by vt_m.
PHP
<?php
// PHP program to find only 
// element in an array where 
// every element appears twice.

// Find non repeating number
// in an array
function findNonRepeating($arr, $n)
{
    $res = 0;
    for ($i = 0; $i < $n; $i++)
        $res = $res ^ $arr[$i];
    return $res;
}

// Driver Code
$arr = array( 3, 8, 3, 2, 2, 1, 1 );
$n = sizeof($arr);
echo(findNonRepeating($arr, $n));

// This code is contributed by Ajit.
?>
JavaScript
<script>

// Javascript program to find only 
// element in an array where 
// every element appears twice.

// Find non repeating 
// number in an array
function findNonRepeating(arr, n)
{
    let res = 0;
    for (let i = 0; i < n; i++)
        res = res ^ arr[i];
    return res;
}

// Driver Code
    let arr = [ 3, 8, 3, 2, 2, 1, 1 ];
    let n = arr.length;
    document.write(findNonRepeating(arr, n));

</script>

Output
8

Time Complexity: O(n). 
Space Complexity: O(1).

 


Next Article
Article Tags :
Practice Tags :

Similar Reads