কম্পিউটার

C++ ব্যবহার করে প্রদত্ত উপাদান মুছে ফেলার পর ক্ষুদ্রতম খুঁজুন


এই সমস্যায়, আমাদের দুটি অ্যারে দেওয়া হয়েছে arr[] এবং del[]। আমাদের কাজ হল প্রদত্ত উপাদানগুলি মুছে ফেলার পরে ক্ষুদ্রতমটি সন্ধান করা৷ .

আমরা del[]-এ উপস্থিত অ্যারে arr[] থেকে মানগুলি মুছে ফেলব। এবং তারপর মুছে ফেলার পরে সবচেয়ে ছোট মান প্রিন্ট করুন।

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট

arr[] = {2, 5, 6, 9, 1}
del[] = {1, 5, 9}

আউটপুট

2

সমাধান পদ্ধতি

সমস্যার একটি সহজ সমাধান হ্যাশিং ব্যবহার করা হয়. আমরা হ্যাশ টেবিলে del[] অ্যারের সমস্ত মান সন্নিবেশ করব। তারপর আমরা অ্যারে arr[] ট্র্যাভার্স করব এবং হ্যাশ টেবিলের মান আছে কিনা তা পরীক্ষা করব। যদি এটি minVal এর চেয়ে ছোট হয়। যদি হ্যাঁ, minVal প্রিন্ট করুন।

উদাহরণ

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম

#include <bits/stdc++.h>
using namespace std;
int findSmallestVal(int arr[], int m, int del[], int n){
   unordered_map<int, int> delVals;
   for (int i = 0; i < n; ++i) {
      delVals[del[i]]++;
   }
   int minVal = INT_MAX;
   for (int i = 0; i < m; ++i) {
   if (delVals.find(arr[i]) != delVals.end()) {
      delVals[arr[i]]--;
      if (delVals[arr[i]] == 0)
         delVals.erase(arr[i]);
      }
      else
         minVal = min(minVal, arr[i]);
   }
   return minVal;
}
int main(){
   int array[] = { 5, 12, 33, 4, 56, 12, 20 };
   int m = sizeof(array) / sizeof(array[0]);
   int del[] = { 12, 4, 56, 5 };
   int n = sizeof(del) / sizeof(del[0]);
   cout<<"The smallest value after the deleting element is "<<findSmallestVal(array, m, del, n);
   return 0;
}

আউটপুট

The smallest value after the deleting element is 12

  1. C++ এ ধারাবাহিক উপাদানগুলির XOR ব্যবহার করে অ্যারের উপাদানগুলি খুঁজুন

  2. C++ ব্যবহার করে একটি অ্যারের মধ্যে একটি সংখ্যার ফ্রিকোয়েন্সি খুঁজুন।

  3. C++ এ প্রদত্ত পার্থক্যের সাথে একটি জোড়া খুঁজুন

  4. C++ এ প্রদত্ত অ্যারের উপাদানগুলির ফ্যাক্টোরিয়ালের GCD খুঁজুন