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

m-तत्वों का समुच्चय खोजें जिसके किन्हीं दो तत्वों का अंतर k से विभाज्य हो C++ में

मान लीजिए हमारे पास N धनात्मक पूर्णांकों का एक ऐरे है, और एक अन्य चर K है। हमें ठीक m-तत्व खोजने हैं, जैसे कि किन्हीं दो तत्वों का अंतर k के बराबर हो। तो यदि ऐरे A = [4, 7, 10, 6, 9] है, और k = 3 और m = 3, तो आउटपुट "yes" होगा। क्योंकि हम 4, 7, 10 जैसे तीन तत्व खोज सकते हैं।

इसे हल करने के लिए, हमें शेषफलों का ट्रैक रखना होगा, जब एक तत्व k से विभाजित होता है। अब आकार k का एक बहुआयामी ऐरे rem[][] बनाएं, इसका इंडेक्स शेषफल दिखा रहा है, और तत्व k से विभाजित होने पर उनके संबंधित शेषफल के अनुसार तत्व होंगे। अब शेषफल समुच्चय को पार करके, हम एक समुच्चय प्राप्त कर सकते हैं जिसका आकार आवश्यक आकार m से अधिक या बराबर है यदि मौजूद है। और उस समुच्चय के किन्हीं तत्वों का अंतर k से विभाज्य होगा।

उदाहरण

#include <iostream>
#include <vector>
using namespace std;

void searchElementsSet(int arr[], int n, int k, int m) {
    vector<int> rem_matrix[k];
    for (int i = 0; i < n; i++) {
        int rem = arr[i] % k;
        rem_matrix[rem].push_back(arr[i]);
    }
    for (int i = 0; i < k; i++) {
        if (rem_matrix[i].size() >= m) {
            cout << "Yes Possible" << endl;
            for (int j = 0; j < m; j++)
                cout << rem_matrix[i][j] << " ";
            return;
        }
    }
    cout << "Impossible";
}

int main() {
    int arr[] = {4, 7, 10, 6, 9};
    int k = 3;
    int m = 3;
    int n = sizeof(arr) / sizeof(arr[0]);
    searchElementsSet(arr, n, k, m);
}

आउटपुट

Yes Possible 4 7 10

  1. - ऐरे में वे सभी तत्व खोजें जिनके कम से कम दो बड़े तत्व हों C++ में

    मान लीजिए, हमारे पास n संख्याओं का एक ऐरे है। हमें ऐरे में वे सभी तत्व खोजने हैं, जिनके कम से कम दो बड़े तत्व हों। यदि ऐरे A = [2, 8, 7, 1, 5] जैसा है, तो परिणाम [2, 1, 5] होगा। इसे हल करने के लिए, हम दूसरा अधिकतम तत्व खोजेंगे, फिर उन सभी तत्वों को प्रिंट करेंगे जो दूसरे अधिकतम मान से कम या बराबर है

  1. - C++ में दो विकर्णों के योग का अंतर ज्ञात करें

    यहां हम देखेंगे कि किसी दिए गए मैट्रिक्स के दो विकर्णों (प्राथमिक और द्वितीयक) के योग का अंतर कैसे प्राप्त किया जाता है। मान लीजिए हमारे पास N x N क्रम का एक मैट्रिक्स है, हमें प्राथमिक और द्वितीयक विकर्णों का योग निकालना है, फिर उनका अंतर लेना है। प्राथमिक विकर्ण प्राप्त करने के लिए, हम जानते हैं

  1. - C++ में दिए गए अंतर वाली जोड़ी ढूंढें

    समस्या विवरण एक सरणी A दी गई है जिसमें n विभिन्न तत्व हैं। हमें सरणी से एक जोड़ी (x, y) ढूंढनी है जिससे x और y का अंतर दिए गए अंतर d के बराबर हो। उदाहरण के लिए, यदि सरणी A = [10, 15, 26, 30, 40, 70] है और दिया गया अंतर 30 है, तो जोड़ियां (10, 40) और (30, 70) होंगी। हल दृष्टिकोण इस समस्या को हल करन