আমাদেরকে একটি অ্যারে দেওয়া হয়েছে, ধরা যাক যে কোনো প্রদত্ত আকারের পূর্ণসংখ্যা উপাদানগুলির 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