কম্পিউটার

ডুপ্লিকেট উপাদানের বাম ঘটনাগুলি অপসারণের পরে অ্যারে খুঁজে পেতে C++ প্রোগ্রাম


ধরুন আমাদের 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,

  1. অ্যারের উপাদানগুলির গুণনের জন্য C++ প্রোগ্রাম

  2. একটি অ্যারের সবচেয়ে বড় উপাদান খুঁজে পেতে C++ প্রোগ্রাম

  3. একটি অ্যারে ডুপ্লিকেট আছে কিনা তা খুঁজে বের করতে C# প্রোগ্রাম

  4. একটি পূর্ণসংখ্যা অ্যারেতে সমস্ত সদৃশ উপাদান খুঁজে পেতে C# প্রোগ্রাম