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

एक सरणी में अधिकतम तत्व खोजें जो पहले बढ़ रहा है और फिर C++ में घट रहा है

मान लीजिए कि हमारे पास एक सरणी है, जो शुरू में बढ़ रही है फिर घट रही है। हमें सरणी में अधिकतम मान खोजना होगा। इसलिए अगर ऐरे एलिमेंट A =[8, 10, 20, 80, 100, 250, 450, 100, 3, 2, 1] जैसे हैं, तो आउटपुट 500 होगा।

इसे हल करने के लिए हम बाइनरी सर्च का उपयोग कर सकते हैं। तीन शर्तें हैं -

  • जब मध्य अपने दोनों आसन्न तत्वों से बड़ा होता है, तो मध्य अधिकतम होता है
  • यदि मध्य अगले तत्व से बड़ा है, लेकिन पिछले तत्व से छोटा है, तो अधिकतम मध्य के बाईं ओर स्थित है।
  • यदि मध्य तत्व अगले तत्व से छोटा है, लेकिन पिछले तत्व से बड़ा है, तो अधिकतम मध्य के दाईं ओर स्थित है।

उदाहरण

#include<iostream>
using namespace std;
int getMaxElement(int array[], int left, int right) {
   if (left == right)
      return array[left];
   if ((right == left + 1) && array[left] >= array[right])
      return array[left];
   if ((right == left + 1) && array[left] < array[right])
      return array[right];
   int mid = (left + right)/2;
   if ( array[mid] > array[mid + 1] && array[mid] > array[mid - 1])
      return array[mid];
   if (array[mid] > array[mid + 1] && array[mid] < array[mid - 1])
      return getMaxElement(array, left, mid-1);
   else
      return getMaxElement(array, mid + 1, right);
}
int main() {
   int array[] = {8, 10, 20, 80, 100, 250, 450, 100, 3, 2, 1};
   int n = sizeof(array)/sizeof(array[0]);
   cout << "The maximum element is: " << getMaxElement(array, 0, n-1);
}

आउटपुट

The maximum element is: 450

  1. उन तत्वों को खोजें जो पहली सरणी में मौजूद हैं और दूसरे में C++ में नहीं हैं

    मान लीजिए कि हमारे पास दो एरे ए और बी हैं। कुछ तत्व हैं। हमें उन तत्वों को खोजना है जो समुच्चय ए में मौजूद हैं, लेकिन सेट बी में नहीं हैं। अगर हम उस स्थिति को सोचते हैं, और ए और बी को सेट मानते हैं, तो यह मूल रूप से सेट डिवीजन ऑपरेशन है। ए और बी के बीच सेट अंतर उन तत्वों को वापस कर देगा। उदाहरण #inc

  1. सरणी में सभी जोड़े (ए, बी) और (सी, डी) खोजें जो सी ++ में एबी =सीडी को संतुष्ट करते हैं

    मान लीजिए कि हमारे पास एक सरणी ए है, उस सरणी से, हमें दो जोड़े (ए, बी) और (सी, डी) चुनना है, जैसे कि एबी =सीडी। मान लीजिए कि सरणी A =[3, 4, 7, 1, 2, 9, 8] है। आउटपुट जोड़े (4, 2) और (1, 8) हैं। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - i :=0 से n-1 के लिए, करें जे के लिए:=i + 1 से n-1 तक, कर

  1. सी ++ प्रोग्राम संख्याओं की एक सरणी के उत्पाद में पहला अंक खोजने के लिए

    इस लेख में, हम दिए गए सरणी के तत्वों के उत्पाद में पहला अंक खोजने के लिए एक कार्यक्रम पर चर्चा करेंगे। उदाहरण के लिए, मान लें कि हमें एक सरणी दी गई है। arr = {12, 5, 16} तब इन तत्वों का गुणनफल 12*5*16 =960 होगा। इसलिए, परिणाम यानी इस मामले में उत्पाद का पहला अंक 9 होगा। उदाहरण #include <bits/st