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

C++ में सबएरे में "मैक्स + मिन" का न्यूनतम मान


समस्या कथन

n पॉजिटिव एलिमेंट्स का एक ऐरे दिया गया है हमें सबएरे में मैक्स और मिन एलिमेंट्स के न्यूनतम संभावित योग को ढूंढना है यह देखते हुए कि सबएरे का आकार 2 से बड़ा या बराबर होना चाहिए।

उदाहरण

यदि arr[] = {10, 5, 15, 7, 2, 1, 3} तो "मैक्स + मिन" का योग 3 है जब हम "2 + 1" जोड़ते हैं।

एल्गोरिदम

  • किसी भी एलिमेंट को सबएरे में जोड़ने से अधिकतम और न्यूनतम का योग नहीं बढ़ेगा।
  • चूंकि ऐरे का मैक्स ऐरे में एलिमेंट्स जोड़ने पर कभी कम नहीं होगा। यह केवल तभी बढ़ेगा जब हम बड़े एलिमेंट्स जोड़ें। इसलिए केवल लंबाई 2 वाले सबएरे पर विचार करना हमेशा ऑप्टिमल होता है।
  • इसलिए लंबाई 2 के सभी सबएरे पर विचार करें और योग की तुलना करें और न्यूनतम लें।

उदाहरण

#include 
using namespace std;

int getMaxSum(int *arr, int n) {
    if (n < 2) {
        return -1;
    }
    int result = arr[0] + arr[1];
    for (int i = 1; i + 1 < n; ++i) {
        result = min(result, (arr[i] + arr[i + 1]));
    }
    return result;
}

int main() {
    int arr[] = {10, 5, 15, 7, 2, 1, 3};
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "Maximum sum = " << getMaxSum(arr, n) << endl;
    return 0;
}

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

आउटपुट

Maximum sum = 3

  1. C++ में एक रेखा पर अधिकतम बिंदु C++ में एक रेखा पर अधिकतम बिंदु

    मान लीजिए हमारे पास एक 2D तल है। हमें उन अधिकतम बिंदुओं की संख्या ढूंढनी है जो एक ही सीधी रेखा पर स्थित हैं। तो यदि बिंदु इस तरह हैं -तो 4 बिंदु हैंइसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे -n := बिंदुओं की संख्या, यदि n < 3, तो n लौटाएंans := 2i को 1 से n - 1 तक की रेंज मेंcount := 0इं

  1. C++ में मिन हीप में मान x से छोटे सभी नोड्स प्रिंट करना C++ में मिन हीप में मान x से छोटे सभी नोड्स प्रिंट करना

    इस समस्या में, हमें एक मिन हीप और एक मान x दिया गया है और हमें x से छोटे सभी नोड्स प्रिंट करने हैं। मिन हीप मिन हीप एक विशेष प्रकार का बाइनरी ट्री है जिसमें हर नोड का मान उसके चाइल्ड नोड के मान से कम होता है। उदाहरण X = 45 आउटपुट - 2 4 7 10 17 22 33 34 अब, इस समस्या को हल करने के लिए हमें पूरे

  1. C++ में मैक्स हीप में न्यूनतम एलिमेंट C++ में मैक्स हीप में न्यूनतम एलिमेंट

    समस्या कथनमैक्स हीप में सबसे कम मान वाला एलिमेंट ढूंढें।नीचे दिए गए मैक्स हीप पर विचार करें।मैक्स हीप में रूट नोड का मान हमेशा उसके बच्चों से अधिक होता है। इस गुण के कारण, हम निष्कर्ष निकाल सकते हैं कि मान लीफ नोड्स में से एक में मौजूद होगा। यदि हीप में n नोड्स हैं तो ceil(n/2) लीफ होंगे।मैक्स हीप ए