在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
廣告