मान लीजिए हमारे पास संख्याओं की एक सूची है, जिन्हें अंक कहते हैं, जिनकी लंबाई कम से कम 2 है। हमें सूची में प्रत्येक शिखर का सूचकांक ज्ञात करना है। सूची को आरोही क्रम में क्रमबद्ध किया गया है। एक सूचकांक i शिखर होता है जब -
-
nums[i]> nums[i + 1] जब i =0
-
nums[i]> nums[i - 1] जब i =n - 1
-
अंक [i - 1] <अंक [i]> अंक [i + 1] अन्य
इसलिए, यदि इनपुट nums =[5, 6, 7, 6, 9] की तरह है, तो आउटपुट [2, 4] होगा, क्योंकि इंडेक्स 2 में तत्व 7 है जो दो पड़ोसियों से बड़ा है, और आइटम पर अनुक्रमणिका 4, 9 है, यह इसके बाएँ आइटम से बड़ा है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
उत्तर :=एक नई सूची
-
n :=अंकों का आकार
-
अगर n 1 के समान है, तो
-
वापसी उत्तर
-
-
प्रत्येक सूचकांक के लिए मैं और संख्या संख्या अंकों में, करते हैं
-
अगर मैं> 0 और मैं
-
अगर अंक [i - 1] <संख्या> अंक [i + 1], तो
-
उत्तर के अंत में i डालें
-
-
अगर मैं 0 के समान हूं, तो
-
अगर संख्या> अंक [i + 1], तो
-
उत्तर के अंत में i डालें
-
-
-
अगर मैं n-1 के समान हूं, तो
-
अगर संख्या> अंक [i - 1], तो
-
उत्तर के अंत में i डालें
-
-
-
-
-
वापसी उत्तर
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें
def solve(nums): ans = [] n = len(nums) if n == 1: return ans for i, num in enumerate(nums): if i > 0 and i < n - 1: if nums[i - 1] < num > nums[i + 1]: ans.append(i) if i == 0: if num > nums[i + 1]: ans.append(i) if i == n - 1: if num > nums[i - 1]: ans.append(i) return ans nums = [5, 6, 7, 6, 9] print(solve(nums))
इनपुट
[5, 6, 7, 6, 9]
आउटपुट
[2, 4]