在C程式中按相對順序列印陣列中元素的最後出現順序。
給定一個包含元素的陣列 a[] ,任務是列印列表中給定元素的最後出現順序。這裡我們不僅要刪除重複的元素,而且還必須按照元素在陣列中最後一次出現的時間來保持元素的出現順序。
就像我們有一個包含 6 個元素的陣列也包含一些重複的值,即 {1,3, 2, 3, 1, 2} 所以結果應該是 3 1 2 的形式。
示例
Input: a[]={4,2,2,4,1,5,1}
Output : 2 4 5 1
演算法
START
Step 1-> Declare function void printelements(int a[], int n)
Use STL unordered_map<int, int> ele
Loop For int i=0 and i<n and i++
Set ele[a[i]]=i
Loop For int i=0 and i<n and i++
IF ele[a[i]]=i
Print a[i]
End
End
Step 2 -> main()
Declare array a[]={4,2,2,4,1,5,1}
Declare int n=sizeof(a)/sizeof(a[0])
Call Function printelements(a,n)
STOP示例
#include <bits/stdc++.h>
using namespace std;
void printelements(int a[], int n) {
unordered_map<int, int> ele;
for (int i = 0; i < n; i++)
ele[a[i]] = i;
for (int i = 0; i < n; i++) {
if (ele[a[i]] == i)
cout << a[i] << " ";
}
}
int main() {
int a[] = { 4,2,2,4,1,5,1 };
int n = sizeof(a) / sizeof(a[0]);
printelements(a, n);
return 0;
}輸出
如果我們執行上述程式,它將生成以下輸出
2 4 5 1
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP