Related Articles

# Print the last occurrence of elements in array in relative order

• Difficulty Level : Medium
• Last Updated : 06 May, 2021

Given an array of N elements, print the elements in the same relative order as given by removing all the occurrences of elements except the last occurrence.
Examples

Input: a[] = {1, 5, 5, 1, 6, 1}
Output: 5 6 1
Remove two integers 1, which are in the positions 1 and 4. Also, remove the integer 5, which is in the position 2.
Hence the left array is {5, 6, 1}
Input: a[] = {2, 5, 5, 2}
Output: 5 2

Approach:

• Hash the last occurrence of every element.
• Iterate in the array of N elements, if the element’s index is hashed, then print the array element.

Below is the implementation of the above approach:

## C++

 `// C++ program to print the last occurrence``// of every element in relative order``#include ``using` `namespace` `std;` `// Function to print the last occurrence``// of every element in an array``void` `printLastOccurrence(``int` `a[], ``int` `n)``{` `    ``// used in hashing``    ``unordered_map<``int``, ``int``> mp;` `    ``// iterate and store the last index``    ``// of every element``    ``for` `(``int` `i = 0; i < n; i++)``        ``mp[a[i]] = i;` `    ``// iterate and check for the last``    ``// occurrence of every element``    ``for` `(``int` `i = 0; i < n; i++) {``        ``if` `(mp[a[i]] == i)``            ``cout << a[i] << ``" "``;``    ``}``}``// Driver Code``int` `main()``{``    ``int` `a[] = { 1, 5, 5, 1, 6, 1 };``    ``int` `n = ``sizeof``(a) / ``sizeof``(a);``    ``printLastOccurrence(a, n);` `    ``return` `0;``}`

## Java

 `// Java program to print the``// last occurrence of every``// element in relative order``import` `java.util.*;` `class` `GFG``{``    ` `    ``// Function to print the last``    ``// occurrence of every element``    ``// in an array``    ``public` `static` `void` `printLastOccurrence(``int` `a[],``                                           ``int` `n)``    ``{``        ``HashMap map = ``new` `HashMap();``        ` `        ``// iterate and store the last``        ``// index of every element``        ``for` `(``int` `i = ``0``; i < n; i++)``            ``map.put(a[i], i);``            ` `        ``for` `(``int` `i = ``0``; i < n; i++)``        ``{``        ``if` `(map.get(a[i]) == i)``            ``System.out.print(a[i] +``" "``);``        ``}``    ``}``    ` `    ``// Driver Code``    ``public` `static` `void` `main (String[] args)``    ``{``        ``int` `a[] = { ``1``, ``5``, ``5``, ``1``, ``6``, ``1` `};``        ``int` `n = a.length;``        ``printLastOccurrence(a, n);``    ``}``}` `// This code is contributed``// by ankita_saini`

## Python3

 `# Python 3 program to print the last occurrence``# of every element in relative order` `# Function to print the last occurrence``# of every element in an array``def` `printLastOccurrence(a, n):``    ` `    ``# used in hashing``    ``mp ``=` `{i:``0` `for` `i ``in` `range``(``7``)}` `    ``# iterate and store the last``    ``# index of every element``    ``for` `i ``in` `range``(n):``        ``mp[a[i]] ``=` `i` `    ``# iterate and check for the last``    ``# occurrence of every element``    ``for` `i ``in` `range``(n):``        ``if` `(mp[a[i]] ``=``=` `i):``            ``print``(a[i], end ``=` `" "``)` `# Driver Code``if` `__name__ ``=``=` `'__main__'``:``    ``a ``=` `[``1``, ``5``, ``5``, ``1``, ``6``, ``1``]``    ``n ``=` `len``(a)``    ``printLastOccurrence(a, n)` `# This code is contributed by``# Surendra_Gangwar`

## C#

 `// C# program to print the``// last occurrence of every``// element in relative order``using` `System;` `class` `GFG``{``    ` `// Function to print the last``// occurrence of every element``// in an array``public` `static` `void` `printLastOccurrence(``int``[] a,``                                       ``int` `n)``{``    ``HashMap map = ``new` `HashMap();``    ` `    ``// iterate and store the last``    ``// index of every element``    ``for` `(``int` `i = 0; i < n; i++)``        ``map.put(a[i], i);``        ` `    ``for` `(``int` `i = 0; i < n; i++)``    ``{``    ``if` `(map.``get``(a[i]) == i)``        ``Console.Write(a[i] + ``" "``);``    ``}``}` `// Driver Code``public` `static` `void` `Main ()``{``    ``int``[] a = { 1, 5, 5, 1, 6, 1 };``    ``int` `n = a.Length;``    ``printLastOccurrence(a, n);``}``}` `// This code is contributed``// by ChitraNayal`

## PHP

 ``

## Javascript

 ``

Output:

`5 6 1`

Time Complexity: O(N * log 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.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

My Personal Notes arrow_drop_up