Skip to content
Related Articles

Related Articles

Print uncommon elements from two sorted arrays

View Discussion
Improve Article
Save Article
Like Article
  • 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 <bits/stdc++.h>
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




<?php
// PHP program to find uncommon
// elements of two sorted arrays
 
function printUncommon($arr1, $arr2,
                       $n1, $n2)
{
    $i = 0;
    $j = 0;
    $k = 0;
    while ($i < $n1 && $j < $n2)
    {
 
        // If not common, print smaller
        if ($arr1[$i] < $arr2[$j])
        {
            echo $arr1[$i] . " ";
            $i++;
            $k++;
        }
        else if ($arr2[$j] < $arr1[$i])
        {
            echo $arr2[$j] . " ";
            $k++;
            $j++;
        }
 
        // Skip common element
        else
        {
            $i++;
            $j++;
        }
    }
 
    // printing remaining elements
    while ($i < $n1)
    {
        echo $arr1[$i] . " ";
        $i++;
        $k++;
    }
    while ($j < $n2)
    {
        echo $arr2[$j] . " ";
        $j++;
        $k++;
    }
}
 
// Driver code
$arr1 = array(10, 20, 30);
$arr2 = array(20, 25, 30, 40, 50);
 
$n1 = sizeof($arr1) ;
$n2 = sizeof($arr2) ;
 
printUncommon($arr1, $arr2, $n1, $n2);
 
// This code is contributed by Anuj_67
?>

Javascript




<script>
// JavaScript program to find uncommon elements
// of two sorted arrays
 
    function printUncommon(arr1,
                     arr2, n1, n2)
    {
   
        let i = 0, j = 0, k = 0;
        while (i < n1 && j < n2) {
   
            // If not common, print smaller
            if (arr1[i] < arr2[j]) {
                document.write(arr1[i] + " ");
                i++;
                k++;
            }
            else if (arr2[j] < arr1[i]) {
                document.write(arr2[j] + " ");
                k++;
                j++;
            }
   
            // Skip common element
            else {
                i++;
                j++;
            }
        }
   
        // printing remaining elements
        while (i < n1)
        {
            document.write(arr1[i] + " ");
            i++;
            k++;
        }
        while (j < n2)
        {
            document.write(arr2[j] + " ");
            j++;
            k++;
        }
    }
 
// Driver Code
        let arr1 = [ 10, 20, 30 ];
        let arr2 = [ 20, 25, 30, 40, 50 ];
   
        let n1 = arr1.length;
        let n2 = arr2.length;
   
        printUncommon(arr1, arr2, n1, n2);
 
// This code is contributed by susmitakundugoaldanga.
</script>

Output : 

10 25 40 50

 

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


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!