Last Updated: 1 Dec, 2020

Remove Duplicates

Easy
Asked in companies
GE (General Electric)Info Edge India (Naukri.com)Morgan Stanley

Problem statement

Ninja is playing with numbers but hates when he gets duplicate numbers. Ninja is provided an array, and he wants to remove all duplicate elements and return the array, but he has to maintain the order in which the elements were supplied to him.

Input Format:
The first line contains a single integer T representing the number of test cases. 

The first line of each test case will contain the integer N.

The second and last line contains N space-separated integers that denote the elements of the given array.
Output Format:
For each test case, return the new array that does not contain any duplicates of the input array.

The output of each test case should be printed in a separate line.
Note:
You do not need to print anything; it has already been taken care of. Just implement the given function. 
Constraints:
1 <= T <= 10
1 <= N <= 5*10^3
-10^5 <= arr[i] <= 10^5

Time Limit: 1 sec

Approaches

01 Approach

We will traverse the whole array and check if that element previously occurred or not.

 

The steps are as follows:

  • We initialize a vector ‘ans’ to store the final non-duplicate elements.
  • We will iterate over all the elements of the array, i.e., i = 0 to i = N - 1:
    • We will iterate over all the elements of the array excluding present element, i.e., j = 0 to j = N - 1:
      • If we get such positions such that arr[i] equals arr[j], then we replace all such arr[j] with -1.
  • We will iterate over all the elements of the array, i.e., i = 0 to i = N - 1:
    • If arr[i] not equals -1, then we store the value in ‘ans’.
  • We will return ‘ans’ as the final answer.

02 Approach

We will traverse the whole array and keep a count of the frequency of each element. If the frequency is one or more than one, then we return only one occurrence of that element only.

 

The steps are as follows:

  • We initialize a hash map ‘freqOfElements’ to store the frequency of each element and vector ‘ans’ to store the final non-duplicate elements.
  • We will iterate over all the elements of the array, i.e., i = 0 to i = N - 1:
    • We will store the frequency of an element arr[i] in ‘freqOfElements’.
    • If the element already exists in ‘m’ then increment freqOfElements[arr[i]].
  • We will iterate over all the elements of the array, i.e., i = 0 to i = N - 1:
    • If freqOfElements[arr[i]] is not -1 then we store the value of arr[i] in ‘ans’.
    • We change the value of freqOfElements[arr[i]] to -1.
  • We will return ‘ans’ as the final answer.