কম্পিউটার টিউটোরিয়াল

0 থেকে N-1 পরিসরের কনস্ট্যান্ট অ্যারেতে ডুপ্লিকেট খুঁজে বের করা O(1) স্পেসে C++-তে


মনে করুন আমাদের 0 থেকে n-1 পর্যন্ত সংখ্যার একটি তালিকা আছে। একটি সংখ্যা যেকোনোবার পুনরাবৃত্ত হতে পারে। আমাদের এক্সট্রা স্পেস নেওয়া ছাড়া পুনরাবৃত্ত সংখ্যাগুলো খুঁজে বের করতে হবে। যদি n = 7 হয়, এবং তালিকা হয় [5, 2, 3, 5, 1, 6, 2, 3, 4, 5]। উত্তর হবে 5, 2, 3।

এটি সমাধানের জন্য, আমাদের নিচের ধাপগুলো অনুসরণ করতে হবে -

  • তালিকার প্রতিটি উপাদান e-এর জন্য, নিচের ধাপগুলো করুন -
    • sign := A[e-এর निरপেক্ষ মান]
    • যদি sign ধনাত্মক হয়, তবে এটিকে ঋণাত্মক করুন
    • অন্যথায় এটি একটি পুনরাবৃত্তি।

উদাহরণ

#include <iostream>
#include <cmath>
using namespace std;

void findDuplicates(int arr[], int size) {
    for (int i = 0; i < size; i++) {
        if (arr[abs(arr[i])] >= 0)
            arr[abs(arr[i])] *= -1;
        else
            cout << abs(arr[i]) << " ";
    }
}

int main() {
    int arr[] = {5, 2, 3, 5, 1, 6, 2, 3, 4, 1};
    int n = sizeof(arr) / sizeof(arr[0]);
    findDuplicates(arr, n);
}

আউটপুট

5 2 3 1

  1. ডুপ্লিকেট অনুমতির সাথে অ্যারেতে ফিক্সড পয়েন্ট খুঁজে বের করা C++-এ

  2. C++-এ অ্যারেতে সর্বোচ্চ GCD वाली পেয়ার বের করা

  3. C++-এ অ্যারে উপাদানগুলির ফ্যাক্টোরিয়ালের GCD বের করা

  4. C++ তে প্রাইম ফ্রিকোয়েন্সি والے অ্যারে উপাদান খুঁজে বের করা