সমস্যা বিবৃতি
সাইজ n সহ দুটি অ্যারে দেওয়া হয়েছে, দ্বিতীয় অ্যারের উপাদানগুলি ব্যবহার করে প্রথম অ্যারেটিকে সর্বাধিক করুন যাতে নতুন অ্যারে ফর্মডটিতে n উভয় অ্যারের সবচেয়ে বড় কিন্তু অনন্য উপাদান থাকে যা দ্বিতীয় অ্যারেকে অগ্রাধিকার দেয় অর্থাৎ দ্বিতীয় অ্যারের সমস্ত উপাদান প্রথমটির আগে উপস্থিত হয়। অ্যারে উপাদানগুলির উপস্থিতির ক্রমটি ইনপুট হিসাবে আউটপুটে একই রাখা উচিত
যদি arr1[] ={12, 15, 10} এবং arr2[] ={16, 17, 5} তাহলে {16, 17, 15} হল ক্রম বজায় রেখে উভয় অ্যারের থেকে সর্বাধিক উপাদান।
অ্যালগরিদম
<পূর্ব>1. 2 * n2 আকারের অস্থায়ী অ্যারে তৈরি করুন। arr1 এবং arr2-এর উপাদানগুলিকে অস্থায়ী অ্যারেতে সংরক্ষণ করুন এবং এটিকে ক্রমানুসারে সাজান3। ইনপুট অ্যারে অনুযায়ী উপাদানের ক্রম রাখতে আমরা হ্যাশ টেবিল 4 ব্যবহার করব। হ্যাশ টেবিল 5 এ অস্থায়ী অ্যারের প্রথম n বৃহত্তম অনন্য উপাদান সংরক্ষণ করুন। দ্বিতীয় অ্যারেটি অতিক্রম করুন এবং হ্যাশ টেবিল 6-এ উপস্থিত অস্থায়ী অ্যারেতে দ্বিতীয় অ্যারের উপাদানগুলি সংরক্ষণ করুন। একইভাবে, প্রথম অ্যারে অতিক্রম করুন এবং হ্যাশ টেবিল 7-এ উপস্থিত উপাদানগুলি সংরক্ষণ করুন। এইভাবে আমরা অস্থায়ী অ্যারে উভয় অ্যারে থেকে n অনন্য এবং বৃহত্তম উপাদান পাইউদাহরণ
#includeনেমস্পেস ব্যবহার করে std;void printArray(int *arr, int n){ এর জন্য (int i =0; i b;}void getMaxElements(int *arr1, int *arr2, int n){ int temp[2 * n]; int k =0; জন্য (int i =0; i হ্যাশ; int i =0; যখন (hash.size() !=n) { if (hash.find(temp[i]) ==hash.end()) { hash.insert(temp[i]); } ++i; } k =0; জন্য (int i =0; i আউটপুট
যখন আপনি উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করেন। এটি নিম্নলিখিত আউটপুট −
তৈরি করেপ্রথম অ্যারে:12 15 10 দ্বিতীয় অ্যারে:16 17 5 সর্বোচ্চ অ্যারে:16 17 15