# Print uncommon elements from two sorted arrays

• Difficulty Level : Easy
• Last Updated : 12 Jun, 2022

Given two sorted arrays of distinct elements, we need to print those elements from both arrays that are not common. The output should be printed in sorted order.
Examples :

```Input : arr1[] = {10, 20, 30}
arr2[] = {20, 25, 30, 40, 50}
Output : 10 25 40 50
We do not print 20 and 30 as these
elements are present in both arrays.

Input : arr1[] = {10, 20, 30}
arr2[] = {40, 50}
Output : 10 20 30 40 50
```

The idea is based on merge process of merge sort. We traverse both arrays and skip common elements.

## C++

 `// C++ program to find uncommon elements of``// two sorted arrays``#include ``using` `namespace` `std;` `void` `printUncommon(``int` `arr1[], ``int` `arr2[],``                           ``int` `n1, ``int` `n2)``{` `    ``int` `i = 0, j = 0, k = 0;``    ``while` `(i < n1 && j < n2) {` `        ``// If not common, print smaller``        ``if` `(arr1[i] < arr2[j]) {``            ``cout << arr1[i] << ``" "``;``            ``i++;``            ``k++;``        ``}``        ``else` `if` `(arr2[j] < arr1[i]) {``            ``cout << arr2[j] << ``" "``;``            ``k++;``            ``j++;``        ``}` `        ``// Skip common element``        ``else` `{``            ``i++;``            ``j++;``        ``}``    ``}` `    ``// printing remaining elements``    ``while` `(i < n1) {``        ``cout << arr1[i] << ``" "``;``        ``i++;``        ``k++;``    ``}``    ``while` `(j < n2) {``        ``cout << arr2[j] << ``" "``;``        ``j++;``        ``k++;``    ``}``}` `// Driver code``int` `main()``{``    ``int` `arr1[] = {10, 20, 30};``    ``int` `arr2[] = {20, 25, 30, 40, 50};` `    ``int` `n1 = ``sizeof``(arr1) / ``sizeof``(arr1[0]);``    ``int` `n2 = ``sizeof``(arr2) / ``sizeof``(arr2[0]);` `    ``printUncommon(arr1, arr2, n1, n2);` `    ``return` `0;``}`

## Java

 `// Java program to find uncommon elements``// of two sorted arrays``import` `java.io.*;` `class` `GFG {``    ` `    ``static` `void` `printUncommon(``int` `arr1[],``                     ``int` `arr2[], ``int` `n1, ``int` `n2)``    ``{` `        ``int` `i = ``0``, j = ``0``, k = ``0``;``        ``while` `(i < n1 && j < n2) {` `            ``// If not common, print smaller``            ``if` `(arr1[i] < arr2[j]) {``                ``System.out.print(arr1[i] + ``" "``);``                ``i++;``                ``k++;``            ``}``            ``else` `if` `(arr2[j] < arr1[i]) {``                ``System.out.print(arr2[j] + ``" "``);``                ``k++;``                ``j++;``            ``}` `            ``// Skip common element``            ``else` `{``                ``i++;``                ``j++;``            ``}``        ``}` `        ``// printing remaining elements``        ``while` `(i < n1) {``            ``System.out.print(arr1[i] + ``" "``);``            ``i++;``            ``k++;``        ``}``        ``while` `(j < n2) {``            ``System.out.print(arr2[j] + ``" "``);``            ``j++;``            ``k++;``        ``}``    ``}` `    ``// Driver code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `arr1[] = { ``10``, ``20``, ``30` `};``        ``int` `arr2[] = { ``20``, ``25``, ``30``, ``40``, ``50` `};` `        ``int` `n1 = arr1.length;``        ``int` `n2 = arr2.length;` `        ``printUncommon(arr1, arr2, n1, n2);``    ``}``}` `// This code is contributed by vt_m`

## Python3

 `# Python 3 program to find uncommon``# elements of two sorted arrays`  `def` `printUncommon(arr1, arr2, n1, n2) :``    ` `    ``i ``=` `0``    ``j ``=` `0``    ``k ``=` `0``    ``while` `(i < n1 ``and` `j < n2) :` `        ``# If not common, print smaller``        ``if` `(arr1[i] < arr2[j]) :``            ``print``( arr1[i] , end``=` `" "``)``            ``i ``=` `i ``+` `1``            ``k ``=` `k ``+` `1``            ` `        ``elif` `(arr2[j] < arr1[i]) :``            ``print``( arr2[j] , end``=` `" "``)``            ``k ``=` `k ``+` `1``            ``j ``=` `j ``+` `1` `        ``# Skip common element``        ``else` `:``            ``i ``=` `i ``+` `1``            ``j ``=` `j ``+` `1``    ` `    ``# printing remaining elements``    ``while` `(i < n1) :``        ``print``( arr1[i] , end``=` `" "``)``        ``i ``=` `i ``+` `1``        ``k ``=` `k ``+` `1``    ` `    ``while` `(j < n2) :``        ``print``( arr2[j] , end``=` `" "``)``        ``j ``=` `j ``+` `1``        ``k ``=` `k ``+` `1`` ` ` ` `# Driver code``arr1 ``=` `[``10``, ``20``, ``30``]``arr2 ``=` `[``20``, ``25``, ``30``, ``40``, ``50``]` `n1 ``=` `len``(arr1)``n2 ``=` `len``(arr2)` `printUncommon(arr1, arr2, n1, n2)`   `# This code is contributed``# by Nikita Tiwari.`

## C#

 `// C# program to find uncommon elements``// of two sorted arrays``using` `System;``class` `GFG {` `static` `void` `printUncommon(``int` `[]arr1,``                          ``int` `[]arr2,``                          ``int` `n1,``                          ``int` `n2)``    ``{` `        ``int` `i = 0, j = 0, k = 0;``        ``while` `(i < n1 && j < n2)``        ``{` `            ``// If not common, print smaller``            ``if` `(arr1[i] < arr2[j])``            ``{``                ``Console.Write(arr1[i] + ``" "``);``                ``i++;``                ``k++;``            ``}``            ``else` `if` `(arr2[j] < arr1[i])``            ``{``                ``Console.Write(arr2[j] + ``" "``);``                ``k++;``                ``j++;``            ``}` `            ``// Skip common element``            ``else``            ``{``                ``i++;``                ``j++;``            ``}``        ``}` `        ``// printing remaining elements``        ``while` `(i < n1)``        ``{``            ``Console.Write(arr1[i] + ``" "``);``            ``i++;``            ``k++;``        ``}``        ``while` `(j < n2)``        ``{``            ``Console.Write(arr2[j] + ``" "``);``            ``j++;``            ``k++;``        ``}``    ``}` `    ``// Driver Code``    ``public` `static` `void` `Main()``    ``{``        ``int` `[]arr1 = {10, 20, 30};``        ``int` `[]arr2 = {20, 25, 30, 40, 50};` `        ``int` `n1 = arr1.Length;``        ``int` `n2 = arr2.Length;` `        ``printUncommon(arr1, arr2, n1, n2);``    ``}``}` `// This code is contributed by Sam007`

## PHP

 ``

## Javascript

 ``

Output :

`10 25 40 50`

Time Complexity : O(n1 + n2)
Auxiliary Space : O(1)

My Personal Notes arrow_drop_up