मान लीजिए हमारे पास पॉजिटिव नंबर्स की एक ऐरे है; हमें उस पॉइंट/आइटम को चेक करना है जिसके पहले आइटम्स सख्ती से घटता हुआ क्रम बनाते हैं और फिर सख्ती से बढ़ते हुए इंटीजर्स का क्रम बनाते हैं। ये निम्नलिखित प्रॉपर्टीज़ हैं: हमें ध्यान रखना है कि सीक्वेंस की न्यूनतम लंबाई 2 होनी चाहिए।
साथ ही, हमने इस बात का ध्यान रखा है कि घटते क्रम का अंतिम मान बढ़ते क्रम का पहला मान है।
तो, यदि इनपुट {5, 4, 3, 4} जैसा है, तो आउटपुट 3 होगा, क्योंकि {5, 4, 3} सख्ती से घट रहा है फिर {3, 4} सख्ती से बढ़ रहा है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- increase := 1, decrease := 1
- n := ऐरे का आकार
- i को 1 से n तक रेंज में, करें
- यदि array[i] < array[i-1], तो
- यदि increase, 1 के समान है, तो
- decrease := decrease + 1
- अन्यथा,
- -1 लौटाएं
- यदि increase, 1 के समान है, तो
- अन्यथा जब array[i] > array[i-1] नॉन-ज़ीरो है, तो
- यदि increase, 1 के समान है, तो
- pt := array[i-1]
- यदि decrease >= 2, तो
- increase := increase + 1
- अन्यथा,
- -1 लौटाएं
- यदि increase, 1 के समान है, तो
- अन्यथा जब array[i], array[i-1] के समान है, तो
- -1 लौटाएं
- यदि array[i] < array[i-1], तो
- यदि increase >= 2 और decrease >= 2, तो
- pt लौटाएं
- अन्यथा,
- -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