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

अधिकतम आकार 2 का न्यूनतम विभाजन और C++ में दिए गए मान द्वारा सीमित योग

समस्या कथन

सकारात्मक संख्याओं की एक सरणी गिरफ्तारी [] को देखते हुए, सरणी में सेटों की न्यूनतम संख्या ज्ञात करें जो निम्नलिखित संपत्ति को संतुष्ट करते हैं,

  • एक समुच्चय में अधिकतम दो अवयव हो सकते हैं। दो तत्वों को सन्निहित होने की आवश्यकता नहीं है।
  • सेट के तत्वों का योग दी गई कुंजी से कम या उसके बराबर होना चाहिए। यह माना जा सकता है कि दी गई कुंजी सबसे बड़े सरणी तत्व से बड़ी या उसके बराबर है।

उदाहरण

अगर arr[] ={1, 2, 3, 4} और k =5 तो निम्नलिखित 2 जोड़े बनाए जा सकते हैं -

{1, 4} और {2, 3}

एल्गोरिदम

  • सरणी क्रमबद्ध करें
  • सॉर्ट किए गए ऐरे के दो कोनों से दो पॉइंटर्स शुरू करें। यदि उनका योग दी गई कुंजी से छोटा या उसके बराबर है, तो हम उनका सेट बनाते हैं, अन्यथा हम केवल अंतिम तत्व पर विचार करते हैं

उदाहरण

#include <iostream>
#include <algorithm>
using namespace std;
int getMinSets(int *arr, int n, int key) {
   int i, j;
   sort (arr, arr + n);
   for (i = 0, j = n - 1; i <= j; ++i) {
      if (arr[i] + arr[j] <= key) {
         --j;
      }
   }
   return i;
}
int main() {
   int arr[] = {1, 2, 3, 4};
   int key = 5;
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << "Minimum set = " << getMinSets(arr, n, key) << endl;
   return 0;
}

आउटपुट

जब आप उपरोक्त प्रोग्राम को संकलित और निष्पादित करते हैं। यह निम्नलिखित आउटपुट उत्पन्न करता है -

Minimum set = 2

  1. सी ++ में किसी सरणी के प्रत्येक सबसेट के तत्वों के बीच न्यूनतम मान

    समस्या कथन पूर्णांकों की एक सरणी को देखते हुए, कार्य सरणी के प्रत्येक सबसेट के सभी तत्वों के AND को खोजना और उन सभी के बीच न्यूनतम और मान को प्रिंट करना है। उदाहरण If arr[] = {1, 2, 3, 4, 5} then (1 & 2) = 0 (1 & 3) = 1 (1 & 4) = 0 (1 & 5) = 1 (2 & 3) = 2 (2 & 4) = 0 (2 &

  1. |ai + aj – k| . का न्यूनतम संभव मान C++ में दिए गए सरणी और k के लिए

    समस्या कथन आपको n पूर्णांक और एक पूर्णांक K की एक सरणी दी गई है। कुल असंगठित युग्मों की संख्या ज्ञात कीजिए {i, j} जैसे कि |ai + aj – k| का निरपेक्ष मान। न्यूनतम संभव है जहां मैं !=j. उदाहरण अगर arr[ ] ={0, 4, 6, 2, 4} और k =7 तो हम निम्न 5 जोड़े बना सकते हैं जिनका न्यूनतम मान 1 है {0, 6}, {4, 2},

  1. C++ में डिवाइड और कॉनकर का उपयोग करते हुए अधिकतम योग सबअरे

    मान लीजिए कि हमारे पास सकारात्मक और नकारात्मक मूल्यों वाले डेटा की एक सूची है। हमें सन्निहित उप-सरणी का योग ज्ञात करना है जिसका योग सबसे बड़ा है। मान लीजिए सूची में {-2, -5, 6, -2, -3, 1, 5, -6} है, तो अधिकतम उप-सरणी का योग 7 है। यह {6, -2, -3 का योग है। , 1, 5} हम इस समस्या का समाधान फूट डालो और ज