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

C++-এ সেট মিসম্যাচ (Set Mismatch)

একটি সেট S আছে যেটি 본래 ১ থেকে n পর্যন্ত সংখ্যা সম্বলিত। কিন্তু একটি ত্রুটিতে একটি সংখ্যা ডুপ্লিকেট হয়ে অন্য একটি সংখ্যা হারিয়ে গেছে। এখন nums অ্যারে এই ত্রুটিপূর্ণ স্টেট দর্শায়। আমাদের ডুপ্লিকেট সংখ্যা এবং হারানো সংখ্যা বের করে অ্যারে আকারে রিটার্ন করতে হবে।

ইনপুট [1,2,3,4,4,6] হলে আউটপুট [4,5]।

সমাধানের ধাপসমূহ

  • v অ্যারে (আকার ২) সংজ্ঞায়িত করুন
  • s1 := A-র সব সংখ্যার যোগফল
  • n := A-র আকার
  • exp_sum := n*(n+1)/2
  • প্রতিটি i এর জন্য A[|A[i]|-1] 네가েটিভ করুন। ইতিমধ্যে 네가েটিভ হলে ডুপ্লিকেট পাওয়া গেলে v[0] := |A[i]|
  • v[1] := v[0] - (s1 - exp_sum)
  • v রিটার্ন করুন

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<auto> v){
    cout << "[";
    for(int i = 0; i 0) {
                A[abs(A[i]) - 1] = -A[abs(A[i]) - 1];
            }
            else {
                v[0] = abs(A[i]);
                break;
            }
        }
        v[1] = v[0] - (s1 - exp_sum);
        return v;
    }
};
int main(){
    Solution ob;
    vector<int> v = {1,2,3,4,4,6};
    print_vector(ob.findErrorNums(v));
}

ইনপুট

{1,2,3,4,4,6}

আউটপুট

[4, 5, ]
  1. C++ STL-এ Set vs Map পার্থক্য (Set vs Map in C++ STL)

  2. C++ STL-এ set::lower_bound() ফাংশন

  3. C++ STL-এ set::find() ফাংশন

  4. C++ STL-এ Set Union বাস্তবায়ন: দুটি সেটের ইউনিয়ন