Remove duplicates from unsorted array using Map data structure

Last Updated : 7 Sep, 2022

Given an unsorted array of integers, print the array after removing the duplicate elements from it. We need to print distinct array elements according to their first occurrence.

Examples: 

Input : arr[] = { 1, 2, 5, 1, 7, 2, 4, 2}
Output : 1 2 5 7 4
Explanation : {1, 2} appear more than one time.

Approach : 

  • Take a hash map, which will store all the elements which have appeared before.
  • Traverse the array.
  • Check if the element is present in the hash map.
  • If yes, continue traversing the array.
  • Else Print the element.

Implementation:

C++
// C++ program to remove the duplicates from the array.
#include "iostream"
#include "unordered_map"
using namespace std;

void removeDups(int arr[], int n)
{
    // Hash map which will store the
    // elements which has appeared previously.
    unordered_map<int, bool> mp;

    for (int i = 0; i < n; ++i) {

        // Print the element if it is not
        // there in the hash map
        if (mp.find(arr[i]) == mp.end()) {
            cout << arr[i] << " ";
        }

        // Insert the element in the hash map
        mp[arr[i]] = true;
    }
}

int main(int argc, char const* argv[])
{
    int arr[] = { 1, 2, 5, 1, 7, 2, 4, 2 };
    int n = sizeof(arr) / sizeof(arr[0]);
    removeDups(arr, n);
    return 0;
}
Java
// Java program to remove
// the duplicates from the array.
import java.util.HashMap;

class GFG 
{
    static void removeDups(int[] arr, int n) 
    {

        // Hash map which will store the
        // elements which has appeared previously.
        HashMap<Integer, 
                Boolean> mp = new HashMap<>();

        for (int i = 0; i < n; ++i)
        {

            // Print the element if it is not
            // there in the hash map
            if (mp.get(arr[i]) == null)
                System.out.print(arr[i] + " ");

            // Insert the element in the hash map
            mp.put(arr[i], true);
        }
    }

    // Driver Code
    public static void main(String[] args)
    {
        int[] arr = { 1, 2, 5, 1, 7, 2, 4, 2 };
        int n = arr.length;
        removeDups(arr, n);
    }
}

// This code is contributed by
// sanjeev2552
Python3
# Python 3 program to remove the
# duplicates from the array 
def removeDups(arr, n):
     
    # dict to store every element
    # one time
    mp = {i : 0 for i in arr}
    
    for i in range(n):
        
        if mp[arr[i]] == 0:
            print(arr[i], end = " ")
            mp[arr[i]] = 1

# Driver code
arr = [ 1, 2, 5, 1, 7, 2, 4, 2 ]

# len of array
n = len(arr)

removeDups(arr,n)

# This code is contributed
# by Mohit Kumar
C#
// C# program to remove
// the duplicates from the array.
using System;
using System.Collections.Generic;

class GFG 
{
    static void removeDups(int[] arr, int n) 
    {
 
        // Hash map which will store the
        // elements which has appeared previously.
        Dictionary<int, 
                Boolean> mp = new Dictionary<int, Boolean>();
 
        for (int i = 0; i < n; ++i)
        {
 
            // Print the element if it is not
            // there in the hash map
            if (!mp.ContainsKey(arr[i]))
                Console.Write(arr[i] + " ");
 
            // Insert the element in the hash map
            mp[arr[i]] = true;
        }
    }
 
    // Driver Code
    public static void Main(String[] args)
    {
        int[] arr = { 1, 2, 5, 1, 7, 2, 4, 2 };
        int n = arr.Length;
        removeDups(arr, n);
    }
}

// This code is contributed by Rajput-Ji
JavaScript
<script>

// JavaScript program to remove
// the duplicates from the array.

function removeDups(arr,n)
{
    // Hash map which will store the
        // elements which has appeared previously.
        let mp = new Map();
  
        for (let i = 0; i < n; ++i)
        {
  
            // Print the element if it is not
            // there in the hash map
            if (mp.get(arr[i]) == null)
                document.write(arr[i] + " ");
  
            // Insert the element in the hash map
            mp.set(arr[i], true);
        }
}

// Driver Code
let arr=[1, 2, 5, 1, 7, 2, 4, 2 ];
let n = arr.length;
removeDups(arr, n);


// This code is contributed by unknown2108

</script>

Output
1 2 5 7 4 

Complexity Analysis:

  • Time Complexity: O(N)
  • Auxiliary Space: O(N)
Comment