ধরা যাক আমরা দুটি সাজানো না করা অ্যারে arr1[] এবং arr2[] দিয়েছি। কাজটি হল arr2[]-এ মোট উপাদানের সংখ্যা গণনা করা যার জন্য arr1[]-এর প্রতিটি উপাদান arr2[]-এ উপস্থিত উপাদানগুলির থেকে কম বা সমান। যাইহোক, উভয় অ্যারের উপাদানে ডুপ্লিকেটও থাকতে পারে।
উদাহরণস্বরূপ,
ইনপুট-1 −
N =6M =7arr1[N] ={1, 2, 5, 0, 6, 3}arr2[M] ={0,0,1,2,1,3,4,6,8}প্রে>আউটপুট −
4 5 7 2 8 6এই সমস্যা সমাধানের জন্য ব্যবহৃত পদ্ধতি
arr1[]-এর প্রতিটি উপাদান গণনা করতে এবং এগুলি arr2[]-এর উপাদানগুলির চেয়ে কম বা সমান কিনা তা পরীক্ষা করতে, ধারণাটি হল arr2[] বাছাই করা এবং arr1[] এর উপাদানগুলি খুঁজে পেতে বাইনারি অনুসন্ধান পদ্ধতি ব্যবহার করা যা কম। অথবা arr2[] এ উপস্থিত উপাদানের সমান।
-
'm' এবং 'n' হিসাবে arr1 এবং arr1 এর আকার ইনপুট নিন।
-
অ্যারের উপাদানগুলির ইনপুট নিন৷
৷ -
একটি ফাংশন countInSecond(int *arr1, int *arr2, int m, int n) ইনপুট হিসাবে দুটি অ্যারে এবং এর আকার নেয় এবং arr2[]-এ উপস্থিত উপাদানের গণনা প্রদান করে।
-
arr2 [] সাজান।
-
arr1[] এর উপর পুনরাবৃত্তি করুন এবং arr2[]-এ নির্দিষ্ট উপাদান খুঁজে পেতে বাইনারি অনুসন্ধান ব্যবহার করুন।
-
এর থেকে কম বা সমান উপাদানের গণনা ফেরত দিন।
উদাহরণ
#includeনেমস্পেস ব্যবহার করে std;void countInSecond(int *nums1,int *nums2,int m,int n){ sort(nums2, nums2+n); int i=0; জন্য(int i=0;i আউটপুট
উপরের কোডটি চালানোর ফলে আউটপুট তৈরি হবে,
4 5 7 2 8 6arr1 এর সমস্ত উপাদানের গণনা যা arr2 এর থেকে কম বা সমান তা হল {4 5 7 2 8 6}৷