मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है। हम डुप्लिकेट तत्वों को हटाना चाहते हैं। हम सरणी के प्रत्येक तत्व के लिए केवल सबसे सही प्रविष्टि छोड़ना चाहते हैं। शेष अद्वितीय तत्वों का सापेक्ष क्रम नहीं बदला जाना चाहिए।
इसलिए, यदि इनपुट A =[1, 5, 5, 1, 6, 1] जैसा है, तो आउटपुट [5, 6, 1]
होगा।कदम
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
Define two arrays b and vis of size: 1200 each x := 0 n := size of A for initialize i := n - 1, when i >= 0, update (decrease i by 1), do: if vis[A[i]] is zero, then: b[x] := A[i] (increase x by 1) vis[A[i]] := 1 for initialize i := x - 1, when i >= 0, update (decrease i by 1), do: print b[i]
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h> using namespace std; void solve(vector<int> A) { int b[1200], vis[1200], x = 0; int n = A.size(); for (int i = n - 1; i >= 0; i--) { if (!vis[A[i]]) { b[x] = A[i]; x++; vis[A[i]] = 1; } } for (int i = x - 1; i >= 0; i--) cout << b[i] << ", "; } int main() { vector<int> A = { 1, 5, 5, 1, 6, 1 }; solve(A); }
इनपुट
{ 1, 5, 5, 1, 6, 1 }
आउटपुट
5, 6, 1,