Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में तीन सॉर्ट किए गए Arrays का प्रतिच्छेदन


मान लीजिए कि तीन पूर्णांक सरणियाँ हैं arr1, arr2 और arr3 और उन्हें सख्ती से बढ़ते क्रम में क्रमबद्ध किया गया है, हमें इन तीनों सरणियों में दिखाई देने वाले पूर्णांकों की एक क्रमबद्ध सरणी वापस करनी होगी . तो अगर सरणी [1,2,3,4,5], [1,2,5,7,9], और [1,3,4,5,8] हैं, तो आउटपुट [1,5] होगा ]

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • रेस नामक एक सरणी परिभाषित करें
  • तीन मानचित्र f1, f2 और f3 बनाएं
  • मैं के लिए 0 से arr1 की लंबाई के बीच
    • f1[arr1[i]] 1 की वृद्धि
  • मैं के लिए 0 से arr2 की लंबाई के बीच
    • f2[arr2[i]] 1 की वृद्धि
  • मैं के लिए 0 से arr3 की लंबाई के बीच
    • f3[arr3[i]] 1 की वृद्धि
  • i =1 से 2000 के लिए,
    • अगर f1[i] और f2[i] और f3[i], तो
      • रिज़ सरणी में i डालें
  • रिटर्न रेस

उदाहरण

एक बेहतर समझ प्राप्त करने के लिए आइए निम्नलिखित कार्यान्वयन को देखें -

#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> arraysIntersection(vector<int>& arr1, vector<int>& arr2, vector<int>& arr3) {
      vector <int> ans;
      unordered_map <int,int> f1,f2,f3;
      for(int i =0;i<arr1.size();i++){
         f1[arr1[i]]++;
      }
      for(int i =0;i<arr2.size();i++){
         f2[arr2[i]]++;
      }
      for(int i =0;i<arr3.size();i++){
         f3[arr3[i]]++;
      }
      for(int i =1;i<=2000;i++){
         if(f1[i] && f2[i] && f3[i])ans.push_back(i);
      }
      return ans;
   }
};
main(){
   Solution ob;
   vector<int> v1 = {1,2,3,4,5};
   vector<int> v2 = {1,2,5,7,9};
   vector<int> v3 = {1,3,4,5,8};
   print_vector(ob.arraysIntersection(v1, v2, v3));
}

इनपुट

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

आउटपुट

[1,5]

  1. जावास्क्रिप्ट में तीन क्रमबद्ध सरणियों का प्रतिच्छेदन

    हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो बढ़ते क्रम में क्रमबद्ध पूर्णांकों के तीन सरणी लेता है। फ़ंक्शन को तब एक सरणी का निर्माण और वापसी करनी चाहिए जिसमें केवल वे तत्व हों जो तीनों सरणियों में मौजूद हों। उदाहरण के लिए - यदि इनपुट सरणियाँ हैं - const arr1 = [4, 7, 8, 11, 13, 15, 17]; cons

  1. सी / सी ++ में बहुआयामी सरणी

    C/C++ में, बहुआयामी सरणी को सरल शब्दों में सरणियों के सरणी के रूप में परिभाषित किया गया है। बहुआयामी सरणियों में डेटा को सारणीबद्ध रूप में (पंक्ति प्रमुख क्रम में) संग्रहीत किया जाता है। निम्न आरेख 3 x 3 x 3 आयाम वाले बहुआयामी सरणी के लिए स्मृति आवंटन रणनीति दिखाता है। एल्गोरिदम Begin    

  1. मैं सी ++ में सरणी का उपयोग कैसे करूं?

    एक सरणी सन्निहित स्मृति स्थानों में रखे गए समान प्रकार के तत्वों की एक श्रृंखला है जिसे एक अद्वितीय पहचानकर्ता में एक अनुक्रमणिका जोड़कर व्यक्तिगत रूप से संदर्भित किया जा सकता है। C++ में किसी सरणी का उपयोग करने के लिए, आपको पहले इसे घोषित करना होगा, उदाहरण के लिए, int arr[10]; यह आकार 10 के प्रकार