मान लीजिए कि हमारे पास नंबरों की एक सूची है जिसे nums कहा जाता है और वह बस स्टॉप को एक लाइन पर दिखा रहा है जहां nums[i] उस समय को दर्शाता है जब एक बस को स्टेशन i पर आना चाहिए। अब जबकि बसें केवल आगे बढ़ सकती हैं, हमें सभी स्टॉप से गुजरने के लिए आवश्यक बसों की न्यूनतम संख्या ज्ञात करनी होगी।
इसलिए, यदि इनपुट संख्या =[1, 2, 7, 9, 3, 4] की तरह है, तो आउटपुट 2 होगा, क्योंकि एक बस स्टॉप ले सकती है [1, 2, 3, 4] और दूसरी कर सकती है [ 7, 9]।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे-
-
उत्तर:=0
-
देखा :=एक सूची जिसकी लंबाई अंकों के समान है और शुरू में असत्य से भरी हुई है
-
प्रत्येक अनुक्रमणिका i और संगत n के लिए अंकों में, करें
-
अगर देखा [i] गलत है, तो
-
देखा [i] :=सच
-
उत्तर:=उत्तर + 1
-
पिछला :=n
-
j के लिए i+1 से लेकर अंकों के आकार तक, करें
-
अगर nums[j]> पिछला और देखा गया [j] गलत है, तो
-
देखा [जे] :=सच
-
पिछला:=अंक[j]
-
-
-
-
-
वापसी उत्तर
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, nums): ans = 0 seen = [False] * len(nums) for i, n in enumerate(nums): if not seen[i]: seen[i] = True ans += 1 prev = n for j in range(i+1, len(nums)): if nums[j] > prev and not seen[j]: seen[j] = True prev = nums[j] return ans ob = Solution() nums = [1, 2, 7, 9, 3, 4] print(ob.solve(nums))
इनपुट
[1, 2, 7, 9, 3, 4]
आउटपुट
2