मान लीजिए हमारे पास n तत्वों वाला एक ऐरे A है। हम डुप्लिकेट तत्वों को हटाना चाहते हैं। हम ऐरे के प्रत्येक तत्व के लिए केवल दाहिनी प्रविष्टि को छोड़ना चाहते हैं। शेष अद्वितीय तत्वों का सापेक्ष क्रम नहीं बदलना चाहिए।
उदाहरण के लिए, यदि इनपुट A = [1, 5, 5, 1, 6, 1] है, तो आउटपुट [5, 6, 1] होगा।
चरण
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
आकार 1200 के दो ऐरे b और vis परिभाषित करें x := 0 n := A का आकार i := n - 1 से 0 तक, करें: यदि vis[A[i]] शून्य है, तो: b[x] := A[i] x बढ़ाएं vis[A[i]] := 1 i := x - 1 से 0 तक, करें: 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,