কম্পিউটার টিউটোরিয়াল

C++ দিয়ে নির্দিষ্ট এলিমেন্ট ডিলিট করার পর সবচেয়ে ছোট মান বের করা


এই সমস্যাতে, আমাদের দুটি অ্যারে arr[] এবং del[] দেওয়া আছে। আমাদের কাজ হল নির্দিষ্ট এলিমেন্ট ডিলিট করার পর সবচেয়ে ছোট মান বের করা।

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

উদাহরণ দেখি:

ইনপুট

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

আউটপুট

 2

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

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

উদাহরণ

আমাদের সমাধানের কাজকর্ম বোঝার জন্য প্রোগ্রাম:

 #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. সি++ প্রোগ্রাম: ক্রমাগত উপাদানদের XOR দিয়ে অ্যারে উপাদানগুলো খুঁজে বের করা

  2. C++ ব্যবহার করে অ্যারেতে একটি সংখ্যার ফ্রিকোয়েন্সি বের করা

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

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