मान लीजिए हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है। हम सूची को कुछ अलग-अलग उपन्यासकारों में विभाजित कर सकते हैं और फिर प्रत्येक टुकड़े को क्रमबद्ध कर सकते हैं। हमें उन उप-सूचियों की अधिकतम संख्या ज्ञात करनी होगी जिन्हें हम इस प्रकार विभाजित कर सकते हैं कि समग्र रूप से अंकों को बाद में क्रमबद्ध किया जाए।
इसलिए, यदि इनपुट संख्या =[4, 3, 2, 1, 7, 5] की तरह है, तो आउटपुट 2 होगा, क्योंकि हम [4, 3, 2, 1] और [7, जैसे उप-सूचियों को सॉर्ट कर सकते हैं। 5]
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- गिनती :=0
- main_sum :=0, Sorted_sum :=0
- संख्याओं के प्रत्येक तत्व x के लिए और संख्याओं के क्रमबद्ध रूप से y, करते हैं
- main_sum :=main_sum + x
- सॉर्टेड_सम:=सॉर्टेड_सम + वाई
- यदि main_sum, sorted_sum के समान है, तो
- गिनती :=गिनती + 1
- वापसी की संख्या
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
class Solution: def solve(self, nums): count = 0 main_sum = sorted_sum = 0 for x, y in zip(nums, sorted(nums)): main_sum += x sorted_sum += y if main_sum == sorted_sum: count += 1 return count ob = Solution() nums = [4, 3, 2, 1, 7, 5] print(ob.solve(nums))
इनपुट
[4, 3, 2, 1, 7, 5]
आउटपुट
2