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

C++-এ অ্যারে থেকে একবার যেটি আছে সেই এলিমেন্ট বের করা (বাকিগুলো দুবার)


সমস্যা

একটি অ্যারে দেওয়া আছে যেখানে সব এলিমেন্ট ঠিক দুবার করে আছে, ছাড়া একটিই একবার আছে। সেটি খুঁজে বের করুন।

সমাধান: XOR অপারেশন

XOR-এর বৈশিষ্ট্য: a ^ a = 0, a ^ 0 = a। সব এলিমেন্ট XOR করলে ডুপ্লিকেটগুলো ক্যান্সেল হয়ে যাবে, শুধু যूनিক এলিমেন্ট বাকি থাকবে।

অ্যালগরিদম

  1. res = 0।
  2. প্রতিটি এলিমেন্ট e এর জন্য: res ^= e।
  3. res রিটার্ন করুন।

C++ কোড

#include <bits/stdc++.h>
using namespace std;

int singleNumber(vector<int>& nums) {
    int ans = 0;
    for (int x : nums) ans ^= x;
    return ans;
}

int main() {
    vector<int> nums = {1,1,5,3,2,5,2};
    cout << singleNumber(nums); // 3
}

আউটপুট

3

কমপ্লেক্সিটি

  • Time: O(n)
  • Space: O(1)
  1. সি++ প্রোগ্রাম: n পূর্ণসংখ্যার অ্যারেতে প্রতিটি দ্বিতীয় উপাদান ডিলিট করলে শেষে বাঁচা উপাদান

  2. সি++ প্রোগ্রাম: অ্যারেতে প্রতিটি উপাদানের জন্য সবচেয়ে নিকটবর্তী বড় মান (Closest Greater Value) খুঁজে বের করা

  3. সি++ প্রোগ্রাম: অ্যারেতে প্রতিটি উপাদানের জন্য সবচেয়ে নিকটবর্তী বড় মান (Closest Greater Value) খুঁজে বের করা

  4. অ্যারেতে সবচেয়ে বড় এলিমেন্ট (Largest Element) বের করার C++ প্রোগ্রাম