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

C++-এ সিঙ্গল নাম্বার III


একটি অ্যারে দেওয়া আছে যেখানে ঠিক দুটি উপাদান একবার আসে, বাকিগুলো দুবার করে আসে। এই দুটি সংখ্যা বের করতে হবে। উদাহরণ: [1,2,3,1,5,2] হলে আউটপুট [3, 5]।

সমাধানের ধাপগুলো:

  • xor_res := 0
  • i = 0 থেকে nums.size()-1 পর্যন্ত: xor_res ^= nums[i]
  • pos := 0
  • (xor_res & (1< रहने পর্যন্ত pos++
  • num1 := 0
  • i = 0 থেকে nums.size()-1 পর্যন্ত:
    • যদি (nums[i] & (1<, num1 ^= nums[i]
  • num2 := xor_res ^ num1
  • num1 আর num2 ফেরত দিন।

উদাহরণ (C++)

#include <bits/stdc++.h> using namespace std; void print_vector(vector<auto> v){    cout << "[";    for(int i = 0; i<v.size(); i++){       cout << v[i] << ", ";    }    cout << "]"<<endl; } class Solution {    public:    vector <int> singleNumber(vector<int>& nums) {       int xor_result = 0;       for (int i=0;i < nums.size(); i++) {          xor_result = xor_result ^ nums[i];       }       int pos = 0;       while ((xor_result & (1 << pos)) == 0) {          pos++;       }       int num1 = 0;       for (int i=0;i < nums.size(); i++) {          if ((nums[i] & (1 << pos)) != 0) {             num1 = num1 ^ nums[i];          }       }       int num2 = xor_result ^ num1;       vector<int> result = {num1, num2};       return result;    } }; main(){    Solution ob;    vector<int> v = {1,2,1,3,2,5};    print_vector(ob.singleNumber(v)); }

ইনপুট

[1,2,1,3,2,5]

আউটপুট

[3, 5, ]

  1. C++-এ The Maze III সমস্যা সমাধান

  2. সি++-এ স্পায়রাল ম্যাট্রিক্স III (Spiral Matrix III)

  3. C++-এ অগ্লি নাম্বার III

  4. C++-এ বাল্ব স্যুইচার III সমস্যা সমাধান