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

• Difficulty Level : Medium
• Last Updated : 08 Jun, 2022

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)
Auxiliary Space: O(N)

My Personal Notes arrow_drop_up
Recommended Articles
Page :