Skip to content
Related Articles

Related Articles

Remove duplicates from unsorted array using Map data structure
  • Difficulty Level : Easy
  • Last Updated : 24 Mar, 2020

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, in which will store all the elements which has 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.

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
Output:
1 2 5 7 4

Time Complexity – O(N)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up
Recommended Articles
Page :