কম্পিউটার

C++ এ একটি অ্যারেতে সমান উপাদান সহ সূচক জোড়ার সংখ্যা


আমাদের N উপাদানের একটি অ্যারে দেওয়া হয়েছে। লক্ষ্য হল সূচক জোড়া (i,j) খুঁজে বের করা যার একই উপাদান মান যেমন i!=j। যেমন, Arr[i]=Arr[j] এবং i!=j। এটি সমান আকারের দস্তানা জোড়া তৈরি করতে ব্যবহৃত হয়। এন গ্লাভসের মধ্যে শুধুমাত্র জোড়া গ্লাভস বিক্রির জন্য উপযোগী।

আমরা 0<=i0 &&Arr[j]>0, এবং i!=j হলে (i,j) প্রতিটি জোড়ার জন্য তুলনা করুন। সত্য হলে, এই ধরনের জোড়ার সংখ্যা বৃদ্ধি করুন এবং এই উপাদানগুলিকে -1 ( Arr[i]=Arr[j]=-1) হিসাবে তৈরি করুন যাতে তাদের আরও পরীক্ষা করা থেকে সরানো যায় কারণ কোনও গ্লাভসের আকার -1 হতে পারে না।

উদাহরণ দিয়ে বোঝা যাক।

ইনপুট − Arr[]={ 4,3,2,1,2,4 } N=6

আউটপুট − সমান উপাদান সহ সূচক জোড়ার সংখ্যা − 2

ব্যাখ্যা

count=0, Arr[]= [ 4,3,2,1,2,4 ]
Arr[0]=Arr[5], 0!=5, count=1 Arr[0]=Arr[5]=-1 → [ -1,3,2,1,2,-1 ]
Arr[2]=Arr[4], 2!=4, count=2 Arr[2]=Arr[4]=-1 → [ -1,3,-1,1,-1,-1 ]
Now array has no new pairs with equal values, i!=j and > -1. Total pairs=2

ইনপুট − Arr[]={ 2,2,2,2,2 } N=5

আউটপুট − সমান উপাদান সহ সূচক জোড়ার সংখ্যা − 2

ব্যাখ্যা

count=0, Arr[]= [ 2,2,2,2,2 ]
Arr[0]=Arr[1], 0!=1, count=1 Arr[0]=Arr[1]=-1 → [ -1,-1,2,2,2 ]
Arr[2]=Arr[3], 2!=3, count=2 Arr[2]=Arr[3]=-1 → [ -1,-1,-1,-1,2 ]
Now array has no new pairs with equal values, i!=j and > -1. Total pairs=2

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • আমরা গ্লাভসের আকার> 0 এর জন্য এলোমেলো সংখ্যা সহ শুরু করা একটি পূর্ণসংখ্যা অ্যারে Arr[] নিই।

  • একটি পরিবর্তনশীল n নিন যা Arr[] এর দৈর্ঘ্য সংরক্ষণ করে।

  • ফাংশন কাউন্টপেয়ার্স(int arr[], int n) একটি অ্যারে নেয়, এটির দৈর্ঘ্য ইনপুট হিসাবে এবং সমান আকার এবং বিভিন্ন সূচক আছে এমন জোড়া ফেরত দেয়।

  • জোড়ার প্রতিটি উপাদানের জন্য লুপের জন্য দুটি ব্যবহার করে ট্রাভার্স অ্যারে।

  • 0<=i

  • arr[i] এবং arr[j] ইতিবাচক কিনা তা পরীক্ষা করুন। যদি arr[i]==arr[j] তাহলে ইনক্রিমেন্ট কাউন্ট। (লুপে সেট করা শর্ত অনুসারে আমি কখনই j এর সমান হব না, তুলনা করার দরকার নেই)।

  • এখন তাদের আরও তুলনা থেকে সরিয়ে দিতে arr[i]=arr[j]=-1 সেট করুন।

  • সমস্ত লুপ গণনার শেষে মোট জোড়া গ্লাভস সংখ্যা থাকবে।

  • ফলাফল হিসাবে গণনা ফেরত দিন।

উদাহরণ

// C++ implementation of above approach
#include <bits/stdc++.h>
using namespace std;
// Function to count equal elements to make pair of gloves
int countPairs(int arr[], int n){
   int count = 0;
   for(int i=0;i<n-1;i++){
      for(int j=i+1;j<n;j++){
         if(arr[i]==arr[j] && arr[i]>0 && arr[j]>0){
            count++;
            arr[i]=arr[j]=-1;
         }
      }
   }
   return count;
}
int main(){
   int arr[] = { 1,2,4,2,1,2,4 };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout <<"Pair of gloves ( Equal element pairs ):"<<countPairs(arr, n);
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Pair of gloves ( Equal element pairs ):3.

  1. C++ এ K এর সমান সেট বিট সহ অ্যারের সমস্ত উপাদানের XOR

  2. C++ এ k এর সমান পার্থক্য সহ সমস্ত স্বতন্ত্র জোড়া গণনা করুন

  3. C++ এ সমান যোগফল সহ একটি সাজানো বিন্যাসে সমস্ত জোড়া প্রিন্ট করুন

  4. C++ এ প্রাইম ফ্রিকোয়েন্সি সহ অ্যারে উপাদান?