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

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


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

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

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

उदाहरण

#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++ प्रोग्राम: वे तत्व ज्ञात करना जो पहली सरणी में हैं लेकिन दूसरी में नहीं

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

  1. - C++ में सरणी में उन सभी जोड़े (a,b) और (c,d) को खोजें जो ab = cd को संतुष्ट करते हैं

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

  1. - C++ प्रोग्राम: संख्याओं के एरे के गुणनफल का पहला अंक ज्ञात करना

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