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

सरणी में सबसे बड़ा d इस प्रकार ज्ञात कीजिए कि a + b + c =d C++ . में


मान लीजिए कि हमारे पास पूर्णांकों का एक समूह है। हमें एक संख्या 'd' ढूंढनी है, जहां d =a + b + c, और हमें अधिकतम करना है (a + b + c), सभी a, b, c, और d सेट में मौजूद हैं। सेट में कम से कम एक तत्व और अधिकतम 1000 तत्व होंगे। प्रत्येक तत्व एक परिमित संख्या होगी। यदि समुच्चय {2, 3, 5, 7, 12} है, तो 12 सबसे बड़ा d है। इसे 2 + 3 + 7 द्वारा दर्शाया जा सकता है

इस समस्या को हल करने के लिए हम हैशिंग तकनीक का उपयोग कर सकते हैं। हम (a + b) के सभी युग्मों का योग हैश तालिका में संग्रहीत करेंगे, फिर सभी युग्मों (c, d) के माध्यम से पार करेंगे और खोज (d - c) तालिका में मौजूद है या नहीं। यदि एक मैच मिलता है, तो सुनिश्चित करें कि कोई भी दो तत्व समान नहीं हैं, और एक ही तत्व को दो बार नहीं माना जाता है।

उदाहरण

#include<iostream>
#include<unordered_map>
#include<climits>
using namespace std;
int findElementsInSet(int arr[], int n) {
   unordered_map<int, pair<int, int> > table;
   for (int i = 0; i < n - 1; i++)
      for (int j = i + 1; j < n; j++)
         table[arr[i] + arr[j]] = { i, j };
      int d = INT_MIN;
      for (int i = 0; i < n - 1; i++) {
         for (int j = i + 1; j < n; j++) {
            int abs_diff = abs(arr[i] - arr[j]);
            if (table.find(abs_diff) != table.end()) {
               pair<int, int> p = table[abs_diff];
               if (p.first != i && p.first != j && p.second != i && p.second != j) d = max(d, max(arr[i], arr[j]));
            }
         }
      }
   return d;
}
int main() {
   int arr[] = { 2, 3, 5, 7, 12 };
   int n = sizeof(arr) / sizeof(arr[0]);
   int res = findElementsInSet(arr, n);
   if (res == INT_MIN)
      cout << "Cannot find the value of d";
   else
      cout << "Max value of d is " << res;
}

आउटपुट

Max value of d is 12

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

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

  1. सी ++ प्रोग्राम 'के' को खोजने के लिए ऐसा है कि प्रत्येक सरणी तत्व के साथ इसका मॉड्यूलस समान है

    इस लेख में, हम एक पूर्णांक k को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे, जैसे कि किसी दिए गए सरणी के प्रत्येक तत्व के साथ इसका मापांक समान हो। उदाहरण के लिए, मान लें कि हमें एक सरणी दी गई है, arr = {12, 22, 32} तब हमारे पास k =1, 2, 5, 10 का आउटपुट मान होता है। y) में दो मानों का मामला लें। तब ह

  1. सी ++ प्रोग्राम एक ऐरे का सबसे बड़ा तत्व खोजने के लिए

    एक सरणी में कई तत्व होते हैं और एक सरणी में सबसे बड़ा तत्व वह होता है जो अन्य तत्वों से बड़ा होता है। उदाहरण के लिए। 5 1 7 2 4 उपरोक्त सरणी में, 7 सबसे बड़ा तत्व है और यह इंडेक्स 2 पर है। किसी सरणी के सबसे बड़े तत्व को खोजने का प्रोग्राम इस प्रकार दिया गया है। उदाहरण #include <iostream> u