আমাদেরকে পূর্ণসংখ্যা সম্বলিত একটি অ্যারে arr[] দেওয়া হয়েছে। লক্ষ্য হল arr[]-এর সমস্ত সাবঅ্যারে গণনা করা যাতে প্রতিটিতে স্বতন্ত্র উপাদানের সংখ্যা মূল অ্যারের স্বতন্ত্র উপাদানগুলির সংখ্যার সমান হয়। যদি আসল অ্যারে হয় [1,1,2,3] তাহলে সাবয়ারে হবে [1,2,3] এবং [1,1,2,3]৷
মূল অ্যারেতে মোট স্বতন্ত্র উপাদান হল 3। উভয় সাব্যারেতে মোট স্বতন্ত্র উপাদান হল 3
আসুন উদাহরণ দিয়ে বুঝতে পারি।
ইনপুট − arr[] ={1,2,1,2,3,4,2 };
আউটপুট − মূল অ্যারের মতোই মোট স্বতন্ত্র উপাদান সহ সাবয়ারের সংখ্যা হল −6
ব্যাখ্যা − arr[] এর স্বতন্ত্র উপাদান হল 4 (1,2,3,4)। একই সংখ্যক স্বতন্ত্র উপাদান সহ সাবাররেগুলি হল:( বাম থেকে ডানে স্বতন্ত্র গণনা করুন)
<প্রে>[1,2,1,2,3,4], [2,1,2,3,4], [1,2,3,4], [1,2,3,4,2] , [2,1,2,3,4,2], [1,2,1,2,3,4,2 ]ইনপুট − arr[] ={8,7,5,6,10};
আউটপুট − মূল অ্যারের মতোই মোট স্বতন্ত্র উপাদান সহ সাবয়ারের সংখ্যা হল − 1
ব্যাখ্যা − arr[] এর স্বতন্ত্র উপাদান হল 5 (5,6,7,8,10)। একই সংখ্যক স্বতন্ত্র উপাদান সহ সাবাররেগুলি হল:( বাম থেকে ডানে স্বতন্ত্র গণনা করুন) [8,7,6,5,10]। শুধুমাত্র 1
নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ
-
পূর্ণসংখ্যার একটি অ্যারে অ্যারে [] নিন এবং একটি অ্যারের আকার গণনা করুন৷
-
ফাংশন sub_ele_diff_one(int arr[], int size) অ্যারে নেয় এবং 1 দ্বারা পৃথক উপাদানগুলির সাথে একটি সাবয়ারের গণনা প্রদান করে৷
-
একটি অস্থায়ী পরিবর্তনশীল গণনা এবং ভেরিয়েবল ডান এবং বাম নিন।
-
এলোমেলো জোড়া তৈরি করার জন্য unordered_map টাইপের একটি পরিবর্তনশীল নিন।
-
স্টার্ট লুপ FOR 0 থেকে একটি অ্যারের আকার পর্যন্ত এবং এর ভিতরে unordered_map এর ভিতরে arr[i] এর মান সেট করুন।
-
এখন, একটি unordered_map এর আকার গণনা করুন এবং unordered_map সাফ করুন।
-
একটি অ্যারের আকার পর্যন্ত 0 থেকে FOR লুপ শুরু করুন৷
-
লুপের ভিতরে, ডানে <সাইজ এবং বাম <একটি অ-অর্ডারড_ম্যাপের আকার
পর্যন্ত শুরু করুন -
um[arr[right]]
এর মান প্রাক-বৃদ্ধি করুন -
এখন, um[arr[right]] =1 কিনা তা পরীক্ষা করুন তারপর বামটির মান 1 দ্বারা বৃদ্ধি করুন।
-
WHILE এর বাইরে, প্রাক-বৃদ্ধি করুন অধিকারের মান 1 দ্বারা।
-
IF বাম =একটি unordered_map এর আকার চেক করুন তারপর গণনা + আকার - ডান + 1
-
um[arr[i]] কে 1
কমিয়ে দিন -
IF um[arr[i]] =0 চেক করুন তারপর বাম দিকে 1
কমিয়ে দিন -
গণনা ফেরত দিন
-
ফলাফল প্রিন্ট করুন।
উদাহরণ
#includeনেমস্পেস ব্যবহার করে std;int sub_distinct(int arr[], int size){ int count =0, right =0, left =0; unordered_map um; জন্য (int i =0; i আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেঅরিজিনাল অ্যারের মতোই মোট স্বতন্ত্র উপাদান সহ সাবয়ারের সংখ্যা হল:1