मान लीजिए कि हमारे पास सकारात्मक संख्याओं की एक सरणी है; हमें एक बिंदु/वस्तु की जांच करनी होती है, जहां तक आइटम सख्ती से घटते अनुक्रम को पहले सख्ती से बढ़ते पूर्णांक के अनुक्रम के बाद बनाते हैं। ये निम्नलिखित गुण हैं:हमें यह ध्यान रखना होगा कि अनुक्रम न्यूनतम लंबाई 2 का होना चाहिए
साथ ही, हमने इस बात का भी ध्यान रखा है कि घटते क्रम का अंतिम मान बढ़ते क्रम का पहला मान हो।
इसलिए, यदि इनपुट {5, 4, 3, 4} जैसा है, तो आउटपुट 3 होगा, क्योंकि {5, 4, 3} सख्ती से घट रहा है तो {3, 4} सख्ती से बढ़ रहा है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- वृद्धि :=1 , कमी :=1
- n :=सरणी का आकार
- 1 से n की श्रेणी में i के लिए, करें
- अगर सरणी[i] <सरणी[i-1], तो
- यदि वृद्धि 1 के समान है, तो
- कमी :=कमी + 1
- अन्यथा,
- वापसी -1
- यदि वृद्धि 1 के समान है, तो
- अन्यथा जब सरणी [i]> सरणी [i-1] गैर-शून्य है, तब
- यदि वृद्धि 1 के समान है, तो
- पीटी:=सरणी[i-1]
- यदि घटती है>=2, तो
- वृद्धि :=वृद्धि + 1
- अन्यथा,
- वापसी -1
- यदि वृद्धि 1 के समान है, तो
- अन्यथा जब सरणी [i] सरणी [i-1] के समान है, तब
- वापसी -1
- अगर सरणी[i] <सरणी[i-1], तो
- यदि वृद्धि>=2 और कमी>=2, तो
- रिटर्न पीटी
- अन्यथा,
- वापसी -1
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def search_element(array): increase = 1 decrease = 1 n = len(array) for i in range(1, n): if(array[i] < array[i-1]): if increase == 1: decrease = decrease + 1 else: return -1 elif(array[i] > array[i-1]): if increase == 1: pt = array[i-1] if decrease >= 2: increase = increase + 1 else: return -1 elif(array[i] == array[i-1]): return -1 if(increase >= 2 and decrease >= 2): return pt else: return -1 array = [5,4,3,4] element = search_element(array) print(element)
इनपुट
[5,4,3,4]
आउटपुट
3