আমাদেরকে পূর্ণসংখ্যার একটি অ্যারে [] দেওয়া হয়েছে। এছাড়াও, দুটি সংখ্যা A এবং B। লক্ষ্য হল arr[] এর সমস্ত সাব্যারে গণনা করা যাতে A এবং B এর উপস্থিতি সকলের মধ্যে সমান হয়। যদি অ্যারে হয় [1,2,3] এবং A হয় 1 এবং B হয় 2। সাবাররে হবে [3], [1,2], [1,2,3]।
আসুন উদাহরণ দিয়ে বুঝতে পারি।
ইনপুট − arr[] ={ 2, 2, 1, 1, 1, 5}; A=1, B=5
আউটপুট − সমান সংখ্যা সহ সাবয়ারের গণনা। দুটি প্রদত্ত উপাদানের সংঘটন হল − 4
ব্যাখ্যা − সুবারায় হবে − [2], [2], [2,2], [1,5]। প্রথম তিনটিতে 1 এবং 5 এর 0টি ঘটনা রয়েছে, শেষটিতে উভয়টির 1টি ঘটনা রয়েছে৷
ইনপুট − arr[] ={ 5,3,7,5,3}; A=1, B=2
আউটপুট − সমান সংখ্যা সহ সাবয়ারের গণনা। দুটি প্রদত্ত উপাদানের সংঘটন হল − 15
ব্যাখ্যা − সুবারায়গুলি হবে − (যেটিতে 1 এবং 2 এর 0টি উপস্থিতি রয়েছে)
<প্রে>[5], [3], [7], [5], [3] - 5[5,3], [3,7], [7,5], [5,3] - 4[ 5,3,7], [3,7,5], [7,5,3] - 3[5,3,7,5], [3,7,5,3] - 2[5,3, 5,7,5] - 11 এবং 2 উভয়ের কোন উপস্থিতি ছাড়াই মোট 15টি সাবয়ারে (0টি ঘটনা)৷
নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ
আমরা সম্ভাব্য সমস্ত সাবয়ারে তৈরি করতে টু লুপ ব্যবহার করে অ্যারেটি অতিক্রম করব। i=0 থেকে i<=size-1 এবং j=i থেকে j<=size-1। গঠিত সাব্যারেগুলি হবে arr[i] থেকে arr[j] এর মধ্যে। প্রতিটি সাবরেতে A এবং B এর ফ্রিকোয়েন্সি গণনা করুন। সমান হলে গণনা বৃদ্ধি করুন।
-
সংখ্যার একটি অ্যারে অ্যারে নিন।
-
ফাংশন sub_EqualOccurrence(int arr[], int size, int A, int B) অ্যারে নেয় এবং সমান সংখ্যা সহ সাব্যারেগুলির একটি গণনা প্রদান করে। A এবং B.
-
0 হিসাবে প্রাথমিক গণনা নিন।
-
আমরা i=0 থেকে i<=size-1 এবং j=0 থেকে j<=size-1 পর্যন্ত লুপের জন্য দুটি ব্যবহার করে অ্যারেটি অতিক্রম করব।
-
দুটি ভেরিয়েবল total_A নিন, total_B 0 হিসাবে A's এবং B's এর সংখ্যার জন্য subarray arr[i] to arr[j]।
-
A এবং B এর সাথে arr[j] এর তুলনা করুন। arr[j] A বা B হলে সংশ্লিষ্ট গণনা বৃদ্ধি করুন ( total_A বা total_B)।
-
যদি মোট_A==total_B. বৃদ্ধির সংখ্যা। (সাব্যারেতে উপাদান হিসাবে A' এবং B এর সমান সংখ্যা রয়েছে)।
-
উভয় লুপের শেষে, ফলাফল হিসাবে গণনা করুন।
উদাহরণ
#includeনেমস্পেস ব্যবহার করে std;int sub_EqualOccurrence(int arr[], int size, int A, int B){ int count =0; জন্য (int i =0; i <=আকার - 1; i++){ int total_A =0; int total_B =0; জন্য (int j =i; j <=size - 1; j++){ if (arr[j] ==A){ total_A++; } অন্যথায় যদি (arr[j] ==B){ total_B++; } if(total_A ==total_B){ count++; } } } রিটার্ন কাউন্ট;}// ড্রাইভার কোডইন্ট মেইন(){ int arr[] ={ 2, 3, 1, 1, 4, 5}; int size =sizeof(arr) / sizeof(arr[0]); int A =1, B =5; cout<<"দুটি প্রদত্ত উপাদানের সমান সংখ্যক সংঘটন সহ সাবয়ারের গণনা হল:"< আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেদুটি প্রদত্ত উপাদানের উপস্থিতির সমান সংখ্যক সাবয়ারের সংখ্যা হল:5