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

सरणी में सभी जोड़े (ए, बी) और (सी, डी) खोजें जो सी ++ में एबी =सीडी को संतुष्ट करते हैं

मान लीजिए कि हमारे पास एक सरणी ए है, उस सरणी से, हमें दो जोड़े (ए, बी) और (सी, डी) चुनना है, जैसे कि एबी =सीडी। मान लीजिए कि सरणी A =[3, 4, 7, 1, 2, 9, 8] है। आउटपुट जोड़े (4, 2) और (1, 8) हैं। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • i :=0 से n-1 के लिए, करें
    • जे के लिए:=i + 1 से n-1 तक, करें
      • उत्पाद प्राप्त करें =एआर [i] * एआर [जे]
      • यदि उत्पाद हैश तालिका में मौजूद नहीं है, तो हैश[उत्पाद] :=(i, j)
      • यदि उत्पाद हैश तालिका में मौजूद है, तो पिछले और वर्तमान तत्वों को प्रिंट करें।

उदाहरण

#include <iostream>
#include <unordered_map>
using namespace std;
void displayPairs(int arr[], int n) {
   bool found = false;
   unordered_map<int, pair < int, int > > Hash;
   for (int i=0; i<n; i++) {
      for (int j=i+1; j<n; j++) {
         int prod = arr[i]*arr[j];
         if (Hash.find(prod) == Hash.end())
            Hash[prod] = make_pair(i,j);
         else{
            pair<int,int> pp = Hash[prod];
            cout << "(" << arr[pp.first] << ", " << arr[pp.second] << ") and (" << arr[i]<<", "<<arr[j] << ")"<<endl; found = true;
         }
      }
   }
   if (found == false)
   cout << "No pairs have Found" << endl;
}
int main() {
   int arr[] = {1, 2, 3, 4, 5, 6, 7, 8};
   int n = sizeof(arr)/sizeof(int);
   displayPairs(arr, n);
}

आउटपुट

(1, 6) and (2, 3)
(1, 8) and (2, 4)
(2, 6) and (3, 4)
(3, 8) and (4, 6)

  1. सी ++ में एक सरणी में स्थानीय मिनीमा खोजें

    मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है। हमें सरणी का स्थानीय न्यूनतम ज्ञात करना है। सरणी ए में, तत्व ए [एक्स] को स्थानीय मिनीमा कहा जाता है यदि यह अपने दोनों पड़ोसियों से कम या बराबर है। कोने के तत्वों के लिए केवल एक पड़ोसी पर विचार किया जाएगा। और यदि एक से अधिक स्थानीय मिनीमा उपलब्ध है

  1. उन तत्वों को खोजें जो पहली सरणी में मौजूद हैं और दूसरे में C++ में नहीं हैं

    मान लीजिए कि हमारे पास दो एरे ए और बी हैं। कुछ तत्व हैं। हमें उन तत्वों को खोजना है जो समुच्चय ए में मौजूद हैं, लेकिन सेट बी में नहीं हैं। अगर हम उस स्थिति को सोचते हैं, और ए और बी को सेट मानते हैं, तो यह मूल रूप से सेट डिवीजन ऑपरेशन है। ए और बी के बीच सेट अंतर उन तत्वों को वापस कर देगा। उदाहरण #inc

  1. एक सरणी में सभी जोड़े (ए, बी) खोजें जैसे कि सी ++ में% बी =के

    मान लीजिए कि हमारे पास एक सरणी ए है, उस सरणी से, हमें सभी जोड़े (ए, बी) प्राप्त करना है जैसे कि ए% बी =के। मान लीजिए कि सरणी A =[2, 3, 4, 5, 7] और k =3 है, तो जोड़े (7, 4), (3, 4), (3, 5), (3, 7) हैं। इसे हल करने के लिए, हम सूची को देखेंगे और जांचेंगे कि दी गई शर्त संतोषजनक है या नहीं। उदाहरण #inc