# Find the two non-repeating elements in an array of repeating elements/ Unique Numbers 2

• Difficulty Level : Hard
• Last Updated : 10 Aug, 2022

Given an array in which all numbers except two are repeated once. (i.e. we have 2n+2 numbers and n numbers are occurring twice and remaining two have occurred once). Find those two numbers in the most efficient way.

Recommended Practice

Method 1(Use Sorting)
First, sort all the elements. In the sorted array, by comparing adjacent elements we can easily get the non-repeating elements. Time complexity of this method is O(nLogn)

Method 2(Use XOR)
Let x and y be the non-repeating elements we are looking for and arr[] be the input array. First, calculate the XOR of all the array elements.

`     xor = arr^arr^arr.....arr[n-1]`

All the bits that are set in xor will be set in one non-repeating element (x or y) and not in others. So if we take any set bit of xor and divide the elements of the array in two sets – one set of elements with same bit set and another set with same bit not set. By doing so, we will get x in one set and y in another set. Now if we do XOR of all the elements in the first set, we will get the first non-repeating element, and by doing same in other sets we will get the second non-repeating element.

```Let us see an example.
arr[] = {2, 4, 7, 9, 2, 4}
1) Get the XOR of all the elements.
xor = 2^4^7^9^2^4 = 14 (1110)
2) Get a number which has only one set bit of the xor.
Since we can easily get the rightmost set bit, let us use it.
set_bit_no = xor & ~(xor-1) = (1110) & ~(1101) = 0010
Now set_bit_no will have only set as rightmost set bit of xor.
3) Now divide the elements in two sets and do xor of
elements in each set and we get the non-repeating
elements 7 and 9. Please see the implementation for this step.```

Approach :
Step 1: Xor all the elements of the array into a variable sum thus all the elements present twice in an array will get removed as for example, 4 = “100” and if 4 xor 4 => “100” xor “100” thus answer will be “000”.
Step 2: Thus in the sum the final answer will be 3 xor 5 as both 2 and 4 are xor with itself giving 0, therefore sum = “011” xor “101” i.e sum = “110” = 6.
Step 3: Now we will take 2’s Complement of sum i.e (-sum) = “010”.
Step 4: Now bitwise And the 2’s of sum with the sum i.e “110” & “010” gives the answer “010” (Aim for bitwise & is that we want to get a number that contains only the rightmost set bit of the sum).
Step 5: bitwise & all the elements of the array with this obtained sum, 2 = “010” & “010” = 2, 3 = “011” & “010” = “010” , 4 = “100” & “010” = “000”, 5 = “101” & “010” = “000”.
Step 6: As we can see that the bitwise & of 2,3 > 0 thus they will be xor with sum1 and bitwise & of 4,5 is resulting into 0 thus they will be xor with sum2.
Step 7: As 2 is present two times so getting xor with sum1 two times only the result 3 is being stored in it and As 4 is also present two times thus getting xor with sum2 will cancel it’s value and thus only 5 will remain there.

Implementation:

## C++

 `// C++ program for above approach` `#include ` `using` `namespace` `std;`   `/* This function sets the values of` `*x and *y to non-repeating elements` `in an array arr[] of size n*/` `void` `get2NonRepeatingNos(``int` `arr[], ``int` `n, ``int``* x, ``int``* y)` `{` `    ``/* Will hold Xor of all elements */` `    ``int` `Xor = arr;`   `    ``/* Will have only single set bit of Xor */` `    ``int` `set_bit_no;` `    ``int` `i;` `    ``*x = 0;` `    ``*y = 0;`   `    ``/* Get the Xor of all elements */` `    ``for` `(i = 1; i < n; i++)` `        ``Xor ^= arr[i];`   `    ``/* Get the rightmost set bit in set_bit_no */` `    ``set_bit_no = Xor & ~(Xor - 1);`   `    ``/* Now divide elements in two sets by` `    ``comparing rightmost set bit of Xor with bit` `    ``at same position in each element. */` `    ``for` `(i = 0; i < n; i++) {`   `        ``/*Xor of first set */` `        ``if` `(arr[i] & set_bit_no)` `            ``*x = *x ^ arr[i];` `        ``/*Xor of second set*/` `        ``else` `{` `            ``*y = *y ^ arr[i];` `        ``}` `    ``}` `}`   `/* Driver code */` `int` `main()` `{` `    ``int` `arr[] = { 2, 3, 7, 9, 11, 2, 3, 11 };` `    ``int` `n = ``sizeof``(arr) / ``sizeof``(*arr);` `    ``int``* x = ``new` `int``[(``sizeof``(``int``))];` `    ``int``* y = ``new` `int``[(``sizeof``(``int``))];` `    ``get2NonRepeatingNos(arr, n, x, y);` `    ``cout << ``"The non-repeating elements are "` `<< *x` `         ``<< ``" and "` `<< *y;` `}`   `// This code is contributed by rathbhupendra`

## C

 `// C program for above approach` `#include ` `#include `   `/* This function sets the values of` `*x and *y to non-repeating elements` `in an array arr[] of size n*/` `void` `get2NonRepeatingNos(``int` `arr[], ``int` `n, ``int``* x, ``int``* y)` `{` `    ``/* Will hold Xor of all elements */` `    ``int` `Xor = arr;`   `    ``/* Will have only single set bit of Xor */` `    ``int` `set_bit_no;` `    ``int` `i;` `    ``*x = 0;` `    ``*y = 0;`   `    ``/* Get the Xor of all elements */` `    ``for` `(i = 1; i < n; i++)` `        ``Xor ^= arr[i];`   `    ``/* Get the rightmost set bit in set_bit_no */` `    ``set_bit_no = Xor & ~(Xor - 1);`   `    ``/* Now divide elements in two sets by` `    ``comparing rightmost set bit of Xor with bit` `    ``at same position in each element. */` `    ``for` `(i = 0; i < n; i++) {`   `        ``/*Xor of first set */` `        ``if` `(arr[i] & set_bit_no)` `            ``*x = *x ^ arr[i];` `        ``/*Xor of second set*/` `        ``else` `{` `            ``*y = *y ^ arr[i];` `        ``}` `    ``}` `}`   `/* Driver program to test above function */` `int` `main()` `{` `    ``int` `arr[] = { 2, 3, 7, 9, 11, 2, 3, 11 };` `    ``int``* x = (``int``*)``malloc``(``sizeof``(``int``));` `    ``int``* y = (``int``*)``malloc``(``sizeof``(``int``));` `    ``get2NonRepeatingNos(arr, 8, x, y);` `    ``printf``(``"The non-repeating elements are %d and %d"``, *x,` `           ``*y);` `    ``getchar``();` `}`

## Java

 `// Java Program for above approach`   `public` `class` `UniqueNumbers {`   `    ``// This function sets the values of` `    ``// *x and *y to non-repeating elements` `    ``// in an array arr[] of size n` `    ``public` `static` `void` `UniqueNumbers2(``int``[] arr, ``int` `n)` `    ``{` `        ``int` `sum = ``0``;` `        ``for` `(``int` `i = ``0``; i < n; i++) {`   `            ``// Xor  all the elements of the array` `            ``// all the elements occurring twice will` `            ``// cancel out each other remaining` `            ``// two unique numbers will be xored` `            ``sum = (sum ^ arr[i]);` `        ``}`   `        ``// Bitwise & the sum with it's 2's Complement` `        ``// Bitwise & will give us the sum containing` `        ``// only the rightmost set bit` `        ``sum = (sum & -sum);`   `        ``// sum1 and sum2 will contains 2 unique` `        ``// elements initialized with 0 box` `        ``// number xored with 0 is number itself` `        ``int` `sum1 = ``0``;` `        ``int` `sum2 = ``0``;`   `        ``// traversing the array again` `        ``for` `(``int` `i = ``0``; i < arr.length; i++) {`   `            ``// Bitwise & the arr[i] with the sum` `            ``// Two possibilities either result == 0` `            ``// or result > 0` `            ``if` `((arr[i] & sum) > ``0``) {`   `                ``// if result > 0 then arr[i] xored` `                ``// with the sum1` `                ``sum1 = (sum1 ^ arr[i]);` `            ``}` `            ``else` `{` `                ``// if result == 0 then arr[i]` `                ``// xored with sum2` `                ``sum2 = (sum2 ^ arr[i]);` `            ``}` `        ``}`   `        ``// print the two unique numbers` `        ``System.out.println(``"The non-repeating elements are "` `                           ``+ sum1 + ``" and "` `+ sum2);` `    ``}`   `    ``public` `static` `void` `main(String[] args)` `    ``{` `        ``int``[] arr = ``new` `int``[] { ``2``, ``3``, ``7``, ``9``, ``11``, ``2``, ``3``, ``11` `};` `        ``int` `n = arr.length;` `        ``UniqueNumbers2(arr, n);` `    ``}` `}` `// This code is contributed by Parshav Nahta`

## Python3

 `# Python3 program for above approach`   `# This function sets the values of` `# *x and *y to non-repeating elements` `# in an array arr[] of size n`     `def` `UniqueNumbers2(arr, n):`   `    ``sums ``=` `0`   `    ``for` `i ``in` `range``(``0``, n):`   `        ``# Xor  all the elements of the array` `        ``# all the elements occurring twice will` `        ``# cancel out each other remaining` `        ``# two unique numbers will be xored` `        ``sums ``=` `(sums ^ arr[i])`   `    ``# Bitwise & the sum with it's 2's Complement` `    ``# Bitwise & will give us the sum containing` `    ``# only the rightmost set bit` `    ``sums ``=` `(sums & ``-``sums)`   `    ``# sum1 and sum2 will contains 2 unique` `    ``# elements  initialized with 0 box` `    ``# number xored with 0 is number itself` `    ``sum1 ``=` `0` `    ``sum2 ``=` `0`   `    ``# Traversing the array again` `    ``for` `i ``in` `range``(``0``, ``len``(arr)):`   `        ``# Bitwise & the arr[i] with the sum` `        ``# Two possibilities either result == 0` `        ``# or result > 0` `        ``if` `(arr[i] & sums) > ``0``:`   `            ``# If result > 0 then arr[i] xored` `            ``# with the sum1` `            ``sum1 ``=` `(sum1 ^ arr[i])`   `        ``else``:`   `            ``# If result == 0 then arr[i]` `            ``# xored with sum2` `            ``sum2 ``=` `(sum2 ^ arr[i])`   `    ``# Print the two unique numbers` `    ``print``(``"The non-repeating elements are "``,` `          ``sum1, ``" and "``, sum2)`     `# Driver Code` `if` `__name__ ``=``=` `"__main__"``:`   `    ``arr ``=` `[``2``, ``3``, ``7``, ``9``, ``11``, ``2``, ``3``, ``11``]` `    ``n ``=` `len``(arr)`   `    ``UniqueNumbers2(arr, n)`   `# This code is contributed by akhilsaini`

## C#

 `// C# program for above approach` `using` `System;`   `class` `GFG {`   `    ``// This function sets the values of` `    ``// *x and *y to non-repeating elements` `    ``// in an array arr[] of size n` `    ``static` `void` `UniqueNumbers2(``int``[] arr, ``int` `n)` `    ``{` `        ``int` `sum = 0;` `        ``for` `(``int` `i = 0; i < n; i++) {`   `            ``// Xor  all the elements of the array` `            ``// all the elements occurring twice will` `            ``// cancel out each other remaining` `            ``// two unique numbers will be xored` `            ``sum = (sum ^ arr[i]);` `        ``}`   `        ``// Bitwise & the sum with it's 2's Complement` `        ``// Bitwise & will give us the sum containing` `        ``// only the rightmost set bit` `        ``sum = (sum & -sum);`   `        ``// sum1 and sum2 will contains 2 unique` `        ``// elements  initialized with 0 box` `        ``// number xored with 0 is number itself` `        ``int` `sum1 = 0;` `        ``int` `sum2 = 0;`   `        ``// Traversing the array again` `        ``for` `(``int` `i = 0; i < arr.Length; i++) {`   `            ``// Bitwise & the arr[i] with the sum` `            ``// Two possibilities either result == 0` `            ``// or result > 0` `            ``if` `((arr[i] & sum) > 0) {`   `                ``// If result > 0 then arr[i] xored` `                ``// with the sum1` `                ``sum1 = (sum1 ^ arr[i]);` `            ``}` `            ``else` `{`   `                ``// If result == 0 then arr[i]` `                ``// xored with sum2` `                ``sum2 = (sum2 ^ arr[i]);` `            ``}` `        ``}`   `        ``// Print the two unique numbers` `        ``Console.WriteLine(``"The non-repeating "` `                          ``+ ``"elements are "` `+ sum1 + ``" and "` `                          ``+ sum2);` `    ``}`   `    ``// Driver Code` `    ``static` `public` `void` `Main()` `    ``{` `        ``int``[] arr = { 2, 3, 7, 9, 11, 2, 3, 11 };` `        ``int` `n = arr.Length;`   `        ``UniqueNumbers2(arr, n);` `    ``}` `}`   `// This code is contributed by akhilsaini`

## Javascript

 ``

Output

`The non-repeating elements are 7 and 9`

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

Please refer below post for detailed explanation :
Find the two numbers with odd occurrences in an unsorted array

Method 3(Use Maps)

In this method, we simply count frequency of each element. The elements whose frequency is equal to 1 is the number which is non-repeating. The solution is explained below in the code-

## C++

 `// C++ program for Find the two non-repeating elements in` `// an array of repeating elements/ Unique Numbers 2`   `#include ` `using` `namespace` `std;`   `/* This function prints the two non-repeating elements in an` ` ``* array of repeating elements*/`   `void` `get2NonRepeatingNos(``int` `arr[], ``int` `n)` `{` `    ``/*Create map and calculate frequency of array` `       ``elements.*/`   `    ``map<``int``, ``int``> m;` `    ``for` `(``int` `i = 0; i < n; i++) {` `        ``m[arr[i]]++;` `    ``}`   `    ``/*Traverse through the map and check if its second` `      ``element that is the frequency is 1 or not. If this is` `      ``1 than it is the non-repeating element print it.It is` `      ``clearly mentioned in problem that all numbers except` `      ``two are repeated once. So they will be printed*/`   `    ``cout << ``"The non-repeating elements are "``;` `    ``for` `(``auto``& x : m) {` `        ``if` `(x.second == 1) {` `            ``cout << x.first << ``" "``;` `        ``}` `    ``}` `}`   `/* Driver code */` `int` `main()` `{` `    ``int` `arr[] = { 2, 3, 7, 9, 11, 2, 3, 11 };` `    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr);` `    ``get2NonRepeatingNos(arr, n);` `}`   `// This code is contributed by Abhishek`

## Java

 `/*package whatever //do not write package name here */`   `//Java program to find 2 non repeating elements ` `//in array that has pairs of numbers`   `import` `java.util.*;` `import` `java.io.*;`   `class` `GFG {` `  `  `      ``//Method to print the 2 non repeating elements in an array` `      ``public` `static` `void` `print2SingleNumbers(``int``[] nums){` `      `  `          ``/*We use a TreeMap to store the elements` `          ``in the sorted order*/` `         ``TreeMap map = ``new` `TreeMap<>();` `      `  `          ``int` `n = nums.length;` `      `  `          ``/*Iterate through the array and check if each ` `          ``element is present or not in the map. If the ` `        ``element is present, remove it from the array` `        ``otherwise add it to the map*/` `      `  `          ``for``(``int` `i = ``0``; i

## Python3

 `# Python program for Find the two ` `# non-repeating elements in an array ` `# of repeating elements/ Unique Numbers 2`   `#  This function prints the two non-repeating elements in an` `#  array of repeating elements` `def` `get2NonRepeatingNos(arr, n):`   `    ``# Create map and calculate frequency of array` `    ``# elements` `    ``m ``=` `{}` `    ``for` `i ``in` `range``(n):` `        ``if``(arr[i] ``not` `in` `m):` `            ``m[arr[i]] ``=` `0`   `        ``m[arr[i]] ``=` `m[arr[i]] ``+` `1`   `    ``# Traverse through the map and check if its second` `    ``#   element that is the frequency is 1 or not. If this is` `    ``#   1 than it is the non-repeating element print it.It is` `    ``#   clearly mentioned in problem that all numbers except` `    ``#   two are repeated once. So they will be printed` `    ``print``(``"The non-repeating elements are"``, end ``=` `" "``)` `    ``for` `key,value ``in` `m.items():` `        ``if` `(value ``=``=` `1``):` `            ``print``(key,end ``=` `" "``)`   `# Driver code ` `arr ``=` `[ ``2``, ``3``, ``7``, ``9``, ``11``, ``2``, ``3``, ``11` `]` `n ``=` `len``(arr)` `get2NonRepeatingNos(arr, n)`   `# This code is contributed by shinjanpatra`

## C#

 `// C# program for the above approach` `using` `System;` `using` `System.Collections.Generic;` `using` `System.Linq;`   `public` `class` `GFG {`   `  ``// Method to print the 2 non repeating elements in an array` `  ``public` `static` `void` `print2SingleNumbers(``int``[] A)` `  ``{`   `    ``/*We use a TreeMap to store the elements` `          ``in the sorted order*/` `    ``Dictionary<``int``, ``int``> map = ``new` `Dictionary<``int``, ``int``>();`   `    ``int` `n = A.Length;`   `    ``/*Iterate through the array and check if each ` `          ``element is present or not in the map. If the ` `        ``element is present, remove it from the array` `        ``otherwise add it to the map*/` `    ``for` `(``int` `i = 0 ; i < n; i++)` `    ``{` `      ``if``(map.ContainsKey(A[i]))` `        ``map.Remove(A[i]);` `      ``else` `        ``map.Add(A[i], 1);` `    ``}` `    ``Console.Write(``"The non-repeating integers are "` `);`   `    ``foreach``(KeyValuePair<``int``, ``int``> it ``in` `map){` `      ``if` `(it.Value == 1) {` `        ``Console.Write(it.Key + ``" "``);` `      ``}` `    ``}`   `  ``}`   `  ``// Driver Code` `  ``public` `static` `void` `Main(String[] args) {` `    ``int``[] nums = ``new` `int``[]{2, 11, 3, 11, 7, 3, 9, 2};` `    ``print2SingleNumbers(nums);` `  ``}` `}`   `// This code is contributed by code_hunt.`

## Javascript

 ``

Output

`The non-repeating elements are 7 9 `

Time Complexity: O(nlogn)
Auxiliary Space: O(n)

Method 4(Use Sets):

In this method, We check if the element already exists, if it exists we remove it else we add it to the set.

Approach:

Step 1: Take each element and check if it exists in the set or not. If it exists go to step-3. If it doesn’t exist go to step-2.

Step 2: Add the element to the set and go to step-4.

Step 3: Remove the element from the set and go to step-4.

Step 4: Print the elements of the set.

Implementation:

## C++

 `// C++ program to find 2 non repeating elements` `// in array that has pairs of numbers` `#include ` `using` `namespace` `std;`   `// Method to print the 2 non repeating elements in an array` `void` `print2SingleNumbers(``int` `nums[], ``int` `n)` `{`   `    ``// Create a Map Set to store the numbers` `    ``multiset<``int``> set;`   `    ``/*Iterate through the array and check if each` `    ``element is present or not in the set. If the` `  ``element is present, remove it from the array` `  ``otherwise add it to the set*/`   `    ``for` `(``int` `i = 0; i < n; i++) {` `        ``auto` `it = set.find(nums[i]);` `        ``if` `(it != set.end())` `            ``set.erase(it);` `        ``else` `            ``set.insert(nums[i]);` `    ``}`   `    ``/*Since there will only be 2 non-repeating elements` `  ``we can directly print them*/` `    ``cout << ``"The 2 non repeating numbers are : "` `         ``<< *set.begin() << ``" "` `<< *next(set.begin(), 1);` `}`   `// Driver code` `int` `main()` `{` `    ``int` `nums[] = { 2, 3, 7, 9, 11, 2, 3, 11 };` `    ``int` `n = ``sizeof``(nums) / ``sizeof``(nums);` `    ``print2SingleNumbers(nums, n);` `}`   `// This code is contributed by  phasing17`

## Java

 `/*package whatever //do not write package name here */` `//Java program to find 2 non repeating elements ` `//in array that has pairs of numbers`   `import` `java.util.LinkedHashSet;` `import` `java.util.Iterator;` `import` `java.io.*;`   `class` `GFG {` `  `  `      ``//Method to print the 2 non repeating elements in an array` `      ``public` `static` `void` `print2SingleNumbers(``int``[] nums){` `      `  `          ``// Create a Map Set to store the numbers` `          ``LinkedHashSet set = ``new` `LinkedHashSet<>();` `      `  `          ``int` `n = nums.length;` `      `  `          ``/*Iterate through the array and check if each ` `          ``element is present or not in the set. If the ` `        ``element is present, remove it from the array` `        ``otherwise add it to the set*/` `      `  `          ``for``(``int` `i = ``0``; i i = set.iterator();` `      `  `          ``/*Since there will only be 2 non-repeating elements` `        ``we can directly print them*/` `          ``System.out.println(``"The 2 non repeating numbers are : "` `+ i.next() + ``" "` `+ i.next());` `    ``}` `      ``//Driver code` `    ``public` `static` `void` `main (String[] args) {` `        ``int``[] nums = ``new` `int``[]{``2``, ``3``, ``7``, ``9``, ``11``, ``2``, ``3``, ``11` `};` `          ``print2SingleNumbers(nums);` `    ``}` `      ``//This code contributed by Satya Anvesh R` `}`

## Python3

 `# Python3 code to find 2 non repeating elements` `# in array that has pairs of numbers`   `# Method to print the 2 non repeating` `# elements in an array` `def` `print2SingleNumbers(nums):`   `    ``# Create a set to store the numbers` `    ``set_ ``=` `set``()`   `    ``n ``=` `len``(nums)`   `    ``# Iterate through the array and check if each` `    ``# element is present or not in the set. If the` `    ``# element is present, remove it from the array` `    ``# otherwise add it to the set`   `    ``for` `i ``in` `nums:` `        ``if` `i ``in` `set_:` `            ``set_.remove(i)` `        ``else``:` `            ``set_.add(i)`   `    ``# Since there will only be 2 non` `    ``# repeating elements we can` `    ``# directly print them` `    ``print``(``"The 2 non repeating numbers are : "` `+` `" "``.join(``map``(``str``, set_)))`   `# Driver Code` `nums ``=` `[``2``, ``3``, ``7``, ``9``, ``11``, ``2``, ``3``, ``11``]`   `# Function Call` `print2SingleNumbers(nums)`   `# This code is contributed by phasing17`

## C#

 `// C# program to find 2 non repeating elements` `// in array that has pairs of numbers` `using` `System;` `using` `System.Collections.Generic;`   `class` `GFG {`   `  ``// Method to print the 2 non repeating elements in an` `  ``// array` `  ``public` `static` `void` `print2SingleNumbers(``int``[] nums)` `  ``{`   `    ``// Create a Map Set to store the numbers` `    ``HashSet<``int``> ``set` `= ``new` `HashSet<``int``>();`   `    ``int` `n = nums.Length;`   `    ``/*Iterate through the array and check if each` `        ``element is present or not in the set. If the` `      ``element is present, remove it from the array` `      ``otherwise add it to the set*/`   `    ``for` `(``int` `i = 0; i < n; i++) {` `      ``if` `(``set``.Contains(nums[i]))` `        ``set``.Remove(nums[i]);` `      ``else` `        ``set``.Add(nums[i]);` `    ``}`   `    ``/*Since there will only be 2 non-repeating elements` `        ``we can directly print them*/` `    ``Console.Write(``"The 2 non repeating numbers are : "``);` `    ``foreach``(``var` `val ``in` `set``) Console.Write(val + ``" "``);` `  ``}` `  `  `  ``// Driver code` `  ``public` `static` `void` `Main(``string``[] args)` `  ``{` `    ``int``[] nums = ``new` `int``[] { 2, 3, 7, 9, 11, 2, 3, 11 };` `    ``print2SingleNumbers(nums);` `  ``}` `}`   `// This code is contributed by phasing17`

## Javascript

 `// JavaScript code to find 2 non repeating elements` `// in array that has pairs of numbers`   `// Method to print the 2 non repeating` `// elements in an array` `function` `print2SingleNumbers(nums)` `{` `    ``// Create a set to store the numbers` `    ``let set = ``new` `Set();`   `    ``let n = nums.length;`   `    ``// Iterate through the array and check if each` `    ``// element is present or not in the set. If the` `    ``// element is present, remove it from the array` `    ``// otherwise add it to the set`   `    ``for` `(``var` `i of nums)` `    ``{` `        ``if` `(set.has(i))` `            ``set.``delete``(i);` `        ``else` `            ``set.add(i);` `    ``}`   `    ``// Since there will only be 2 non` `    ``// repeating elements we can` `    ``// directly print them` `    ``console.log(``"The 2 non repeating numbers are :"``, [...set].join(``' '``));` `}`   `// Driver Code` `let nums = [2, 3, 7, 9, 11, 2, 3, 11];`   `// Function Call` `print2SingleNumbers(nums);`   `// This code is contributed by phasing17`

Output

`The 2 non repeating numbers are : 7 9`

Time complexity: O(n) for given array of size n

## C++

 `// C++ program for Find the two non-repeating elements in` `// an array of repeating elements/ Unique Numbers 2`   `#include ` `using` `namespace` `std;`   `/* This function prints the two non-repeating elements in an` `* array of repeating elements*/`   `void` `get2NonRepeatingNos(``int` `arr[], ``int` `n)` `{` `    ``/*Create map and calculate frequency of array` `    ``elements.*/`   `    ``// Create a Map Set to store the numbers` `    ``set<``int``> s;` `    ``for` `(``int` `i = 0; i < n; i++)` `    ``{` `        ``/*Iterate through the array and check if each` `        ``element is present or not in the set. If the` `        ``element is present, remove it from the array` `        ``otherwise add it to the set*/` `        ``if` `(s.find(arr[i]) != s.end())` `            ``s.erase(arr[i]);` `        ``else` `            ``s.insert(arr[i]);` `    ``}` `    ``cout << ``"The 2 non repeating numbers are : "``;` `    ``for` `(``auto` `it : s)` `        ``cout << it << ``" "``;` `    ``cout << endl;` `}`   `/* Driver code */` `int` `main()` `{` `    ``int` `arr[] = {2, 3, 7, 9, 11, 2, 3, 11};` `    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr);` `    ``get2NonRepeatingNos(arr, n);` `}`   `// This code is contributed by Aditya kumar`

## Java

 `// Java code to implement the approach` `import` `java.util.*;`   `class` `GFG {`   `  ``/* This function prints the two non-repeating elements in an` `* array of repeating elements*/`   `  ``static` `void` `get2NonRepeatingNos(``int` `arr[], ``int` `n)` `  ``{` `    ``/*Create map and calculate frequency of array` `    ``elements.*/`   `    ``// Create a Map Set to store the numbers` `    ``HashSet s = ``new` `HashSet();` `    ``for` `(``int` `i = ``0``; i < n; i++)` `    ``{` `      ``/*Iterate through the array and check if each` `        ``element is present or not in the set. If the` `        ``element is present, remove it from the array` `        ``otherwise add it to the set*/` `      ``if` `(s.contains(arr[i])) ` `        ``s.remove(arr[i]);` `      ``else` `        ``s.add(arr[i]);` `    ``}` `    ``System.out.print(``"The 2 non repeating numbers are : "``);` `    ``for` `(``int` `it : s)` `      ``System.out.print(it + ``" "``);` `    ``System.out.println();` `  ``}`   `  ``// Driver code` `  ``public` `static` `void` `main (String[] args) {`   `    ``int` `arr[] = {``2``, ``3``, ``7``, ``9``, ``11``, ``2``, ``3``, ``11``};` `    ``int` `n = arr.length;` `    ``get2NonRepeatingNos(arr, n);` `  ``}` `}`   `// This code is contributed by sanjoy_62.`

## Python3

 `# Python program for Find the two non-repeating elements in` `# an array of repeating elements/ Unique Numbers 2`   `#  This function prints the two non-repeating elements in an` `#  array of repeating elements` `def` `get2NonRepeatingNos(arr, n):`   `    ``# Create a Set to store the numbers` `    ``s ``=` `set``()` `    ``for` `i ``in` `range``(n):` `    `  `        ``# Iterate through the array and check if each` `        ``# element is present or not in the set. If the` `        ``# element is present, remove it from the array` `        ``# otherwise add it to the set`   `        ``if` `(arr[i] ``in` `s):` `            ``s.remove(arr[i])` `        ``else``:` `            ``s.add(arr[i])` `    ``print``(``"The 2 non repeating numbers are :"``,end``=``" "``)` `    ``for` `it ``in` `s:` `        ``print``(it,end``=``" "``)` `    ``print``()`   `# Driver code ` `arr ``=` `[``2``, ``3``, ``7``, ``9``, ``11``, ``2``, ``3``, ``11``]` `n ``=` `len``(arr)` `get2NonRepeatingNos(arr, n)`   `# This code is contributed by shinjanpatra`

## C#

 `// C# program for the above approach` `using` `System;` `using` `System.Collections.Generic;`   `class` `GFG{`   `  ``/* This function prints the two non-repeating elements in an` `* array of repeating elements*/`   `  ``static` `void` `get2NonRepeatingNos(``int``[] arr, ``int` `n)` `  ``{` `    ``/*Create map and calculate frequency of array` `    ``elements.*/`   `    ``// Create a Map Set to store the numbers\` `    ``HashSet<``int``> s = ``new` `HashSet<``int``>();` `    `  `    ``for` `(``int` `i = 0; i < n; i++)` `    ``{` `      ``/*Iterate through the array and check if each` `        ``element is present or not in the set. If the` `        ``element is present, remove it from the array` `        ``otherwise add it to the set*/` `      ``if` `(s.Contains(arr[i])) ` `        ``s.Remove(arr[i]);` `      ``else` `        ``s.Add(arr[i]);` `    ``}` `    ``Console.Write(``"The 2 non repeating numbers are : "``);` `    ``foreach` `(``int` `it ``in` `s)` `      ``Console.Write(it + ``" "``);` `    ``Console.WriteLine();` `  ``}`   `// Driver Code` `public` `static` `void` `Main(String[] args)` `{` `    ``int``[] arr = {2, 3, 7, 9, 11, 2, 3, 11};` `    ``int` `n = arr.Length;` `    ``get2NonRepeatingNos(arr, n);` `}` `}`   `// This code is contributed by avijitmondal1998.`

## Javascript

 ``

Output

`The 2 non repeating numbers are : 7 9 `

Time Complexity: O(nlogn)

Auxiliary Space: O(n)

My Personal Notes arrow_drop_up
Recommended Articles
Page :