按相对顺序打印数组中最后出现的元素

给定一个由N个元素组成的数组,通过删除除最后一个元素外的所有元素引用,以与给定相同的相对顺序打印元素。 例子 :

null

输入: a[]={1,5,5,1,6,1} 输出: 5 6 1 删除位置1和4中的两个整数1。此外,删除位于位置2的整数5。 因此,左边的数组是{5,6,1} 输入: a[]={2,5,5,2} 输出: 5 2

方法:

  • 散列每个元素的最后一次出现。
  • 迭代N个元素的数组,如果元素的索引是散列的,那么打印数组元素。

以下是上述方法的实施情况:

C++

// C++ program to print the last occurrence
// of every element in relative order
#include <bits/stdc++.h>
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[0]);
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<Integer,
Integer> map = new HashMap<Integer,
Integer>();
// 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<Integer,
Integer> map = new HashMap<Integer,
Integer>();
// 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

<?php
// PHP program to print the last
// occurrence of every element
// in relative order
// Function to print the last
// occurrence of every element
// in an array
function printLastOccurrence(& $a , $n )
{
// used in hashing
$mp = array ();
// iterate and store the last
// index of every element
for ( $i = 0; $i < $n ; $i ++)
$mp [ $a [ $i ]] = $i ;
// iterate and check for the last
// occurrence of every element
for ( $i = 0; $i < $n ; $i ++)
{
if ( $mp [ $a [ $i ]] == $i )
echo $a [ $i ] . " " ;
}
}
// Driver Code
$a = array (1, 5, 5, 1, 6, 1);
$n = sizeof( $a );
printLastOccurrence( $a , $n );
// This code is contributed
// by ChitraNayal
?>


Javascript

<script>
// Javascript program to print the last
// occurrence of every element
// in relative order
// Function to print the last
// occurrence of every element
// in an array
function printLastOccurrence(a, n)
{
// used in hashing
let mp = [];
// iterate and store the last
// index of every element
for (let i = 0; i < n; i++)
mp[a[i]] = i;
// iterate and check for the last
// occurrence of every element
for (let i = 0; i < n; i++)
{
if (mp[a[i]] == i)
document.write( a[i] + " " );
}
}
// Driver Code
let a = [1, 5, 5, 1, 6, 1];
let n = a.length;
printLastOccurrence(a, n);
// This code is contributed by sravan kumar
</script>


输出:

5 6 1

时间复杂性: O(N*logn)

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享