কম্পিউটার

C++ তে মূল অ্যারের মতোই মোট স্বতন্ত্র উপাদান রয়েছে এমন সাবঅ্যারে গণনা করুন


আমাদেরকে পূর্ণসংখ্যা সম্বলিত একটি অ্যারে 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

  1. C++ এ সাজানো অ্যারেতে ছোট ছোট উপাদান গণনা করুন

  2. C++-এ একটি অ্যারেতে অ-পুনরাবৃত্ত (স্বতন্ত্র) উপাদানগুলির পণ্য

  3. C++ এ একটি সাজানো অ্যারেতে পরম স্বতন্ত্র গণনা?

  4. পাইথনে একটি অ্যারেতে স্বতন্ত্র উপাদান গণনা করুন