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

C++ में ऐरे में सबसे बड़ा d ढूंढें जैसे कि a + b + c = d


मान लीजिए हमारे पास पूर्णांकों का एक सेट है। हमें एक संख्या '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 
#include 
#include 
using namespace std;

int findElementsInSet(int arr[], int n) {
    unordered_map> 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 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. - C++ में सरणी में उन सभी जोड़े (a, b) को खोजें जैसे कि a % b = k

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

  1. - C++ प्रोग्राम: 'k' खोजें जैसे कि प्रत्येक एरे तत्व के साथ इसका मॉड्यूलस समान हो

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

  1. - C++ में सरणी का सबसे बड़ा एलिमेंट खोजने का प्रोग्राम

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