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

C++ में ऐरे में (arr[i] - i) - (arr[j] - j) का मान अधिकतम करना


समस्या कथन

एक ऐरे arr[] दिया गया है, (arr[i] - i) - (arr[j] - j) का अधिकतम मान ढूंढें जहां i, j के बराबर नहीं है। जहां i और j 0 से n-1 तक भिन्न होते हैं और n इनपुट ऐरे arr[] का आकार है।

यदि इनपुट ऐरे {7, 5, 10, 2, 3} है तो हम निम्नानुसार 9 अधिकतम मान प्राप्त कर सकते हैं:

(तत्व 10 - इंडेक्स 2) - (तत्व 2 - इंडेक्स 3)
(10 - 2) - (2 - 3) = 8 - (-1) = 9

एल्गोरिदम

1. पूरे ऐरे में (arr[i] - i) का अधिकतम मान ढूंढें।
2. पूरे ऐरे में (arr[i] - i) का न्यूनतम मान ढूंढें।
3. उपरोक्त दो मानों का अंतर वापस करें।

उदाहरण

#include <bits/stdc++.h>
using namespace std;

int getMaxDiff(int* arr, int n) {
    if (n < 2) {
        cout << "Invalid input" << endl;
        exit(1);
    }
    int minVal = INT_MAX;
    int maxVal = INT_MIN;
    for (int i = 0; i < n; ++i) {
        int result = arr[i] - i;
        if (result > maxVal) {
            cout << "Max = " << arr[i] << " - " << i << endl;
            maxVal = result;
        }
        if (result < minVal) {
            cout << "Min = " << arr[i] << " - " << i << endl;
            minVal = result;
        }
    }
    return (maxVal - minVal);
}

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

आउटपुट

Maximum value = Max = 7 - 0
Min = 7 - 0
Min = 5 - 1
Max = 10 - 2
Min = 2 - 3
9
  1. - C++ में दिए गए नंबर तक ऐरे तत्वों को अधिकतम करना

    समस्या कथन पूर्णांकों का एक ऐरे, एक संख्या और एक अधिकतम मान दिया गया है, कार्य ऐरे तत्वों से प्राप्त किए जा सकने वाले अधिकतम मान की गणना करना है। शुरुआत से ऐरे को पार करते समय हर मान को पिछले इंडेक्स से प्राप्त परिणाम में या तो जोड़ा जा सकता है या घटाया जा सकता है जैसे कि किसी भी बिंदु पर परिणाम 0

  1. - C++ प्रोग्राम: सरणी में सबसे छोटे मान की आवृत्ति ज्ञात करना

    यहां हम देखेंगे कि सरणी में सबसे छोटे तत्व की आवृत्ति कैसे ज्ञात करें। मान लें सरणी तत्व [5, 3, 6, 9, 3, 7, 5, 8, 3, 12, 3, 10] हैं, यहां सबसे छोटा तत्व 3 है, और इस तत्व की आवृत्ति 4 है। इसलिए आउटपुट 4 है। इसे हल करने के लिए हम सूची का सबसे छोटा तत्व ज्ञात करेंगे, फिर पहले नंबर की घटनाओं को गिनेंगे

  1. - C++ प्रोग्राम: क्रमबद्ध सरणी में सभी ट्रिपलेट ज्ञात करना जो ज्यामितीय प्रगति बनाते हैं

    मान लें हमारे पास विशिष्ट धनात्मक पूर्णांकों की एक क्रमबद्ध सरणी है। हमें सभी ट्रिपलेट ज्ञात करने हैं, जो पूर्णांक सामान्य अनुपात के साथ ज्यामितीय प्रगति (Geometric Progression) बनाते हैं। मान लें सरणी तत्व [1, 2, 6, 10, 18, 54] हैं, ट्रिपलेट (2, 6, 18), और (6, 18, 54) हैं, ये ज्यामितीय प्रगति बना र