इस समस्या में, हमें n धनात्मक पूर्णांकों का एक सरणी arr[] दिया गया है। हमारा काम एक प्रोग्राम बनाना है जो एक ऐरे में पिछले और अगले तत्व से अधिक तत्वों को खोजने के लिए है।
कोड विवरण: हमें सरणी के उन तत्वों को खोजने की आवश्यकता है जो शर्त को पूरा करते हैं, तत्व बड़ा है कि सूचकांक 1 पर तत्व इससे कम है और सूचकांक 1 के तत्व से भी बड़ा है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट: गिरफ्तारी [] ={3, 2, 5, 7, 3, 4, 5}
आउटपुट: 7
स्पष्टीकरण -
सूचकांक वाला तत्व वर्तमान तत्व से एक कम है, 5.
सूचकांक वाला तत्व वर्तमान तत्व से एक अधिक है, 3.
वर्तमान तत्व दोनों से बड़ा है।
समाधान दृष्टिकोण -
समस्या का एक सरल समाधान यह है कि सरणी के प्रत्येक तत्व के लिए स्थिति की जाँच की जाए और फिर उस तत्व को प्रिंट किया जाए जो शर्त को पूरा करता हो।
इसके लिए हमें इन चरणों का पालन करना होगा-
चरण 1: अनुक्रमणिका 1 से n-2 तक सरणी के तत्वों के माध्यम से लूप करें।
चरण 1.1: प्रत्येक तत्व के लिए, गिरफ्तार [i]। हम जाँच करेंगे कि क्या arr[i]> arr[i-1] और arr[i]> arr[i+1] है।
चरण 1.2: अगर यह सच है, तो गिरफ्तारी [i] प्रिंट करें।
हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,
उदाहरण
#include <iostream> using namespace std; void findElemenetsInArray(int arr[], int n) { for (int i = 1; i < n-1; i++) if ( (arr[i] > arr[i+1] && arr[i] > arr[i-1]) ) { cout<<arr[i]<<"\t"; } } int main() { int n = 8; int arr[n] = { 5, 4, 7, 1, 17, 8, 3 }; cout<<"The elements that satisfy the given condition are "; findElemenetsInArray(arr, n); return 0; }
आउटपुट -
The elements that satisfy the given condition are 7 17. हैं