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

C প্রোগ্রাম: অ্যারেতে একাধিকবার আবার্তিত এলিমেন্ট খুঁজুন

সংক্ষিপ্ত বিবরণ

এই প্রোগ্রামটি একটি অ্যারেতে কোন এলিমেন্টগুলো একাধিকবার আসছে সেগুলো খুঁজে বের করে।

অ্যালগরিদম (কাউন্টিং মেথড)

  1. অ্যারে আকার অনুযায়ী কাউন্ট অ্যারে আলোকেট করুন (calloc দিয়ে শূন্য আরম্ভ)
  2. প্রতিটি এলিমেন্টের জন্য কাউন্ট বাড়ান
  3. যদি কাউন্ট ১ হয়ে যায়, সেটি ডুপ্লিকেট — প্রিন্ট করুন

উদাহরণ

Input: {5, 11, 11, 2, 1, 4, 2}
Output: 11 2

সি কোড

#include <stdio.h>
#include <stdlib.h>

int main() {
    int arr[] = {21, 87, 212, 109, 41, 21};
    int n = sizeof(arr)/sizeof(arr[0]);
    int *count = calloc(n, sizeof(int)); // ধরে নেওয়া হয়েছে ভ্যালু < n

    printf("Repeated elements: ");
    for (int i = 0; i < n; i++) {
        if (count[arr[i]] == 1)
            printf("%d ", arr[i]);
        else
            count[arr[i]]++;
    }
    printf("\n");
    free(count);
    return 0;
}

আউটপুট

Repeated elements: 21

সীমাবদ্ধতা: এই পদ্ধতিটি তখনই কাজ করবে যখন অ্যারে ভ্যালুগুলো ০ থেকে n-1 এর মধ্যে থাকে। সাধারণ ক্ষেত্রে হ্যাশ টেবিল বা সেট ব্যবহার করা উচিত।

  1. পাইথনে একসাথে একাধিক ম্যাট্রিক্সের মাল্টিপ্লিকেটিভ ইনভার্স

  2. পাইথনে স্ট্রিংয়ে k-দৈর্ঘ্যের সাবস্ট্রিং একাধিকবার ঘটে কতবার গণনা করার প্রোগ্রাম

  3. পাইথনে দুইটিরও বেশি বা অ্যারে সংখ্যার জিসিডি (GCD) প্রোগ্রাম

  4. পাইথন প্রোগ্রাম: দুইটির অধিক (অথবা অ্যারে) সংখ্যার GCD বের করা