কম্পিউটার

C++ এ সাজানো অ্যারেতে 25% এর বেশি উপাদান উপস্থিত হচ্ছে


ধরুন আমাদের একটি অ্যারে আছে। কয়েকটি উপাদান আছে। কিছু উপাদান সাধারণ। আমাদের এমন একটি উপাদান ফেরত দিতে হবে যা অ্যারেতে 25% এর বেশি স্পেস দেখাচ্ছে। তাহলে A =[1, 2, 4, 4, 4, 4, 5, 5, 6, 6, 7, 7] হলে, এখানে 4 এসেছে চারবার। এটি 12 এর 25% এর বেশি (অ্যারের আকার)

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • উপাদানগুলি পড়ুন এবং তাদের নিজ নিজ ফ্রিকোয়েন্সি সংরক্ষণ করুন
  • যদি ফ্রিকোয়েন্সি অ্যারের আকারের 25% এর বেশি হয়, তাহলে ফলাফলটি ফেরত দিন।

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
      int findSpecialInteger(vector<int>& arr) {
         int n = arr.size();
         int req = n / 4;
         unordered_map <int, int> m;
         int ans = -1;
         for(int i = 0; i < n; i++){
            m[arr[i]]++;
            if(m[arr[i]] > req)ans = arr[i];
         }
         return ans;
      }
};
main(){
   Solution ob;
   vector<int> c = {1,2,4,4,4,4,5,5,6,6,7,7};
   cout << ob.findSpecialInteger(c);
}

ইনপুট

[1,2,4,4,4,4,5,5,6,6,7,7]

আউটপুট

4

  1. একটি সাজানো অ্যারেতে উপাদান খুঁজুন যার ফ্রিকোয়েন্সি C++ এ n/2 এর থেকে বেশি বা সমান।

  2. C++ এ সাজানো অ্যারেতে সংখ্যাগরিষ্ঠ উপাদানের জন্য পরীক্ষা করুন

  3. দুইটির বেশি (বা অ্যারে) সংখ্যার GCD-এর জন্য C++ প্রোগ্রাম?

  4. দুইটির বেশি (বা অ্যারে) সংখ্যার GCD 0 এর জন্য C++ প্রোগ্রাম?