मान लीजिए हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है। हमें अंकों में प्रत्येक शिखर तत्व का सूचकांक, आरोही क्रम में क्रमबद्ध करना है। एक शिखर तत्व का एक सूचकांक i जब इन तीनों शर्तों को पूरा किया जाता है:1. इसके दाईं ओर अगला नंबर जो अंकों से अलग है [i] मौजूद नहीं है या अंकों से छोटा होना चाहिए [i] 2. पिछली संख्या इसकी बाईं ओर जो अंकों से भिन्न है [i] मौजूद नहीं है या अंकों से छोटा होना चाहिए [i] 3. इसके बाईं ओर या दाईं ओर कम से कम एक संख्या है जो nums[i] से भिन्न है।
इसलिए, यदि इनपुट अंकों की तरह है =[5, 8, 8, 8, 6, 11, 11], तो आउटपुट [1, 2, 3, 5, 6] होगा, क्योंकि 8 के पठार को माना जाता है चोटियाँ [1,2,3]। और 11 भी हैं, [5, 6]।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- n :=अंकों का आकार
- उत्तर:=एक नई सूची
- मैं :=0
- जबकि मैं
- i0 :=i
- जबकि मैं
- i :=i + 1
- यदि i0 0 नहीं है या i n नहीं है, तो
- उत्तर के अंत में
- एक (i0 से i-1 तक की सूची) डालें
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(nums): n = len(nums) ans = [] i = 0 while i < n: i0 = i while i < n and nums[i] == nums[i0]: i += 1 if (i0 == 0 or nums[i0] > nums[i0 - 1]) and (i == n or nums[i0] > nums[i]): if i0 != 0 or i != n: ans.extend(range(i0, i)) return ans nums = [5, 8, 8, 8, 6, 11, 11] print(solve(nums))
इनपुट
[5, 8, 8, 8, 6, 11, 11]
आउटपुट
[1, 2, 3, 5, 6]