Diistinct elements in a given array (original) (raw)

Last Updated : 29 Apr, 2026

Given an array **arr[] of integers which may or may not contain duplicate elements. Your task is to remove duplicate elements. Your result should have elements according their first appearance in the input array.

**Examples:

**Input: arr[] = [1, 2, 3, 1, 4, 2]
**Output: [1, 2, 3, 4]
**Explanation: 2 and 1 have more than 1 occurence.

**Input: arr[] = [1, 2, 3, 4]
**Output: [1, 2, 3, 4]
**Explanation: There is no duplicate element.

Try It Yourselfredirect icon

Table of Content

[Naive Approach] Using Nested loops - O(n^2) Time and O(1) Space

Use two nested loops. The outer loop picks an element one by one starting from the leftmost element. The inner loop checks if the element is present on left side of it. If present, then ignore the element, else store it in result.

C++ `

#include #include using namespace std;

vector removeDuplicate(vector &arr) { vector res;

for (int i = 0; i < arr.size(); i++)
{

    // Check if this element is included in result
    int j;
    for (j = 0; j < i; j++)
        if (arr[i] == arr[j])
            break;

    // Include this element if not included previously
    if (i == j)
        res.push_back(arr[i]);
}
return res;

} // Driver Code int main() { vector arr = {1, 2, 3, 1, 4, 2}; vector res = removeDuplicate(arr);

for (int ele : res)
    cout << ele << " ";
return 0;

}

Java

import java.util.ArrayList; import java.util.List;

public class GfG { public static List removeDuplicate(List arr) { List res = new ArrayList<>();

    for (int i = 0; i < arr.size(); i++) {

        // Check if this element is included in result
        int j;
        for (j = 0; j < i; j++)
            if (arr.get(i) == arr.get(j))
                break;

        // Include this element if not included previously
        if (i == j)
            res.add(arr.get(i));
    }
    return res;
}
// Driver Code
public static void main(String[] args) {
    List<Integer> arr = List.of(1, 2, 3, 1, 4, 2);
    List<Integer> res = removeDuplicate(arr);

    for (int ele : res)
        System.out.print(ele + " ");
}

}

Python

def removeDuplicate(arr): res = []

for i in range(len(arr)):
    found = False

    # Check if already present
    for j in range(i):
        if arr[i] == arr[j]:
            found = True
            break

    # If not found, add to result
    if not found:
        res.append(arr[i])

return res

Driver Code

arr = [1, 2, 3, 1, 4, 2] res = removeDuplicate(arr)

for ele in res: print(ele, end=' ')

C#

using System; using System.Collections.Generic;

public class GfG { public static List removeDuplicate(List arr) { List res = new List();

    for (int i = 0; i < arr.Count; i++)
    {

        // Check if this element is included in result
        int j;
        for (j = 0; j < i; j++)
            if (arr[i] == arr[j])
                break;

        // Include this element if not included previously
        if (i == j)
            res.Add(arr[i]);
    }
    return res;
}
// Driver Code
public static void Main()
{
    List<int> arr = new List<int> { 1, 2, 3, 1, 4, 2 };
    List<int> res = removeDuplicate(arr);

    foreach (int ele in res)
        Console.Write(ele + " ");
}

}

JavaScript

function removeDuplicate(arr) { let res = [];

for (let i = 0; i < arr.length; i++) {

    // Check if this element is included in result
    let j;
    for (j = 0; j < i; j++)
        if (arr[i] === arr[j])
            break;

    // Include this element if not included previously
    if (i === j)
        res.push(arr[i]);
}
return res;

} // Driver Code let arr = [1, 2, 3, 1, 4, 2]; let res = removeDuplicate(arr);

for (let ele of res) console.log(ele + ' ');

`

[Expected Approach] Using Hash Set - O(n) Time and O(n) Space

Use Hash Set to store distinct element. Insert all the elements in a hash set and then traverse the hash set to store the distinct elements in the resultant array.

#include #include #include using namespace std;

vector removeDuplicate(vector &arr) { // Creates an empty hashset int n = arr.size(); unordered_set s; vector v;

// Traverse the input array
for (int i = 0; i < n; i++)
{
    // If not present, then put it in
    // hashtable and print it
    if (s.find(arr[i]) == s.end())
    {
        s.insert(arr[i]);
        v.push_back(arr[i]);
    }
}
return v;

} // Driver Code int main() { vector arr = {1, 2, 3, 1, 4, 2};

vector<int> res = removeDuplicate(arr);
for (int ele : res)
    cout << ele << " ";
return 0;

}

Java

import java.util.HashSet; import java.util.ArrayList;

public class GfG { public static ArrayList removeDuplicate(int[] arr) { // Creates an empty hashset HashSet s = new HashSet<>(); ArrayList v = new ArrayList<>();

    // Traverse the input array
    for (int i = 0; i < arr.length; i++) {
        // If not present, then put it in
        // hashtable and print it
        if (!s.contains(arr[i])) {
            s.add(arr[i]);
            v.add(arr[i]);
        }
    }
    return v;
}
// Driver Code
public static void main(String[] args)
{
    int[] arr = { 1, 2, 3, 1, 4, 2 };

    ArrayList<Integer> res = removeDuplicate(arr);
    for (int ele : res)
        System.out.print(ele + " ");
}

}

Python

def removeDuplicate(arr): # Creates an empty hashset s = set() v = []

# Traverse the input array
for i in range(len(arr)):
    # If not present, then put it in
    # hashtable and print it
    if arr[i] not in s:
        s.add(arr[i])
        v.append(arr[i])
return v

Driver Code

arr = [1, 2, 3, 1, 4, 2] res = removeDuplicate(arr) for ele in res: print(ele, end=' ')

C#

using System; using System.Collections.Generic;

public class GfG { public static List removeDuplicate(int[] arr) { // Creates an empty hashset HashSet s = new HashSet(); List v = new List();

    // Traverse the input array
    for (int i = 0; i < arr.Length; i++)
    {
        // If not present, then put it in
        // hashtable and print it
        if (!s.Contains(arr[i]))
        {
            s.Add(arr[i]);
            v.Add(arr[i]);
        }
    }
    return v;
}
// Driver Code
public static void Main()
{
    int[] arr = { 1, 2, 3, 1, 4, 2 };

    List<int> res = removeDuplicate(arr);
    foreach (int ele in res)
        Console.Write(ele + " ");
}

}

JavaScript

function removeDuplicate(arr) { // Creates an empty hashset let s = new Set(); let v = [];

// Traverse the input array
for (let i = 0; i < arr.length; i++) {
    // If not present, then put it in
    // hashtable and print it
    if (!s.has(arr[i])) {
        s.add(arr[i]);
        v.push(arr[i]);
    }
}
return v;

} // Driver Code let arr = [1, 2, 3, 1, 4, 2]; let res = removeDuplicate(arr); for (let ele of res) { console.log(ele + " "); }

`