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 अधिकतम मान प्राप्त कर सकते हैं-

(element 10 – index 2) - (element 2 – index 3)
(10 – 2) – (2 – 3) = 8 – (-1) = 9

एल्गोरिदम

1. Find maximum value of (arr[i] – i) in whole array.
2. Find minimum value of (arr[i] – i) in whole array.
3. Return difference of above two values

उदाहरण

#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. एक क्रमबद्ध सरणी में सभी ट्रिपल खोजें जो सी ++ में ज्यामितीय प्रगति बनाता है

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