কম্পিউটার

C++ এ একটি অ্যারেতে সমস্ত সদৃশ খুঁজুন


ধরুন আমাদের কাছে পূর্ণসংখ্যার একটি অ্যারে আছে, রেঞ্জ 1 ≤ a[i] ≤ n (n =অ্যারের আকার), এখানে কিছু উপাদান দুবার এবং অন্যগুলি একবার প্রদর্শিত হয়। আমাদের এই অ্যারেতে দুইবার প্রদর্শিত সমস্ত উপাদান খুঁজে বের করতে হবে। সুতরাং যদি অ্যারে হয় [4,3,2,7,8,2,3,1], তাহলে আউটপুট হবে [2, 3]

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • n :=অ্যারের আকার, ans নামে একটি অ্যারে তৈরি করুন
  • আমি 0 থেকে n – 1
      পরিসরে
    • x :=সংখ্যার পরম মান[i]
    • x 1 দ্বারা কমিয়ে দিন
    • সংখ্যা [x] <0 হলে, উত্তরে x + 1 যোগ করুন, অন্যথায় nums[x] :=nums[x] * (-1)
  • উত্তর ফেরত দিন

উদাহরণ(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> findDuplicates(vector<int>& nums) {
      int n = nums.size();
      vector <int> ans;
      for(int i = 0; i < n; i++){
         int x = abs(nums[i]);
         x--;
         if(nums[x] < 0) ans.push_back(x + 1);
         else nums[x] *= -1;
      }
      return ans;
   }
};
main(){
   Solution ob;
   vector<int> v = {4,3,2,7,8,2,3,1};
   print_vector(ob.findDuplicates(v));
}

ইনপুট

[4,3,2,7,8,2,3,1]

আউটপুট

[2,3]

  1. C++ এ সমান্তরাল অ্যারে

  2. C++ এ অ্যারেতে একটি পার্টিশন পয়েন্ট খুঁজুন

  3. C++ এ একটি অ্যারেতে সমস্ত জোড়ার যোগফলের XOR এর যোগফল

  4. C++ এ একটি অ্যারেতে সমস্ত মৌলিক সংখ্যার গুণফল