কম্পিউটার

একটি অ্যারের সর্বাধিক উপাদান গণনা করুন যার পরম পার্থক্য C++ এ K এর বেশি নয়


আমাদেরকে একটি অ্যারে দেওয়া হয়েছে, ধরা যাক যে কোনো প্রদত্ত আকারের পূর্ণসংখ্যা উপাদানগুলির arr[] এবং একটি ধনাত্মক পূর্ণসংখ্যা k এবং কাজটি হল সেই উপাদান জোড়াগুলির গণনা করা যার পরম পার্থক্য প্রদত্ত পূর্ণসংখ্যা k-এর বেশি নয়৷

এক ধরণের ডেটা স্ট্রাকচার অ্যারে করে যা একই ধরণের উপাদানগুলির একটি নির্দিষ্ট-আকারের অনুক্রমিক সংগ্রহ সঞ্চয় করতে পারে। একটি অ্যারে ডেটা সংগ্রহের জন্য ব্যবহার করা হয়, তবে একই ধরণের ভেরিয়েবলের সংগ্রহ হিসাবে একটি অ্যারেকে ভাবতে প্রায়ই এটি বেশি কার্যকর।

উদাহরণস্বরূপ

Input − int arr[] = {2, 3, 6, 12, 14}, k= 5
Output − count is : 3

ব্যাখ্যা − সর্বাধিক পরম পার্থক্য সহ জোড়াগুলি k অর্থাৎ 5 এর চেয়ে বেশি নয় হল 3।

Input − int arr[] = {2, 3, 6, 12, 14}, k= 10
Output − count is : 4

ব্যাখ্যা − সর্বোচ্চ পরম পার্থক্য সহ জোড়া k এর বেশি নয় যেমন 10 এই উদাহরণে এইভাবে গঠিত জোড়াগুলি হল:(2, 3), (2, 6), (3,6), (2, 12), (3, 12) ), (6, 12) অর্থাৎ {2, 3, 6, 12} তাই গণনা হল 4 কারণ সর্বাধিক উপাদান 4।

Input − int arr[] = {2, 3, 6, 12, 14}, k= 0
Output − count is : 0

ব্যাখ্যা − যেহেতু 0 এর মত পার্থক্যের সাথে কোন জোড়া নেই তাই গণনা হল 0।

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

  • একটি অ্যারে তৈরি করুন আসুন বলি, arr[] এবং একটি ধনাত্মক পূর্ণসংখ্যা k

  • length() ফাংশন ব্যবহার করে একটি অ্যারের দৈর্ঘ্য গণনা করুন যা একটি অ্যারের উপাদান অনুযায়ী একটি পূর্ণসংখ্যা মান প্রদান করবে।

  • একটি অস্থায়ী পরিবর্তনশীল নিন যা উপাদানের গণনা সংরক্ষণ করবে।

  • দুটি অস্থায়ী ভেরিয়েবল ঘোষণা করা যাক, প্রথম এবং শেষ এবং 0 দিয়ে আরম্ভ করুন

  • ফাংশনের আর্গুমেন্ট হিসাবে একটি অ্যারে সাজানোর জন্য সাজানোর পদ্ধতিতে কল করুন এবং অ্যারে এবং অ্যারের আকার পাস করুন৷

  • i থেকে 0 এবং i একটি অ্যারের আকারের চেয়ে কম জন্য লুপ শুরু করুন

  • লুপের ভিতরে, j থাকাকালীন শুরু করুন

  • ভিতরে থাকাকালীন, IF গণনা চেক করুন

  • গণনা ফেরত দিন

  • ফলাফল প্রিন্ট করুন।

উদাহরণ

#include <iostream>
#include <algorithm>
using namespace std;
int countmax(int arr[], int size, int K){
   int result = 0;
   int i = 0, j = 0;
   int beg = 0;
   int end = 0;
   // Sort the array
   sort(arr, arr + size);
   // Find max elements
   for (i = 0; i < size; i++) {
      // Count all elements which are in the range
      while (j < size && arr[j] <= arr[i] + K)
      j++;
      if (result < (j - i)) {
         result = (j - i);
         beg = i;
         end = j;
      }
   }
   // Return the max count
   return result;
}
// main function
int main(){
   int arr[] = { 2, 3, 6, 12, 14 };
   int size = sizeof(arr) / sizeof(arr[0]);
   int K = 5;
   cout <<"count is "<<countmax(arr, size, K) << endl;
   return 0;
}

আউটপুট

আমরা উপরের কোডটি চালালে আমরা নিম্নলিখিত আউটপুট পাব -

count is 3

  1. নোড খুঁজুন যার পরম পার্থক্য X-এর সাথে C++ এ সর্বোচ্চ মান দেয়

  2. C++ এ একটি অ্যারেতে জোড় এবং বিজোড় সূচীকৃত উপাদানের পরম পার্থক্য?

  3. একটি অ্যারে (C++) এ জোড় এবং বিজোড় সূচীকৃত উপাদানের পরম পার্থক্য?

  4. একটি অ্যারের (C++) মধ্যে সব জোড়া জোড়া ধারাবাহিক উপাদানের পরম পার্থক্য?