Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में सभी स्टॉप्स से गुजरने के लिए आवश्यक न्यूनतम बसों की संख्या खोजने का प्रोग्राम


मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है जो एक लाइन पर बस स्टॉप दिखाती है जहां nums[i] स्टेशन i पर बस के पहुंचने का समय दिखाता है। चूंकि बसें केवल आगे बढ़ सकती हैं, हमें सभी स्टॉप्स से गुजरने के लिए आवश्यक न्यूनतम बसों की संख्या ढूंढनी है।

उदाहरण के लिए, यदि इनपुट है nums = [1, 2, 7, 9, 3, 4], तो आउटपुट होगा 2, क्योंकि एक बस स्टॉप्स [1, 2, 3, 4] ले सकती है और दूसरी [7, 9] ले सकती है।

हल करने के चरण

  • ans := 0
  • seen := nums की लंबाई की सूची, प्रारंभ में false से भरी हुई।
  • प्रत्येक इंडेक्स i और संबंधित n के लिए nums में:
    • यदि seen[i] गलत है, तो:
      • seen[i] := True
      • ans := ans + 1
      • prev := n
      • j को i+1 से nums के आकार तक:
        • यदि nums[j] > prev और seen[j] गलत है, तो:
          • seen[j] := True
          • prev := nums[j]
  • ans लौटाएं।

उदाहरण

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
  1. Python से DAG में सभी नोड्स तक पहुंचने के लिए मिनिमम वर्टेक्स कैसे ढूंढें? Python से DAG में सभी नोड्स तक पहुंचने के लिए मिनिमम वर्टेक्स कैसे ढूंढें?

    डायरेक्टेड एसाइक्लिक ग्राफ (DAG) में जिन वर्टेक्सेज़ का इन-डिग्री 0 है, उनसे सभी नोड्स पहुंचे जा सकते हैं। एल्गोरिदम सभी नोड्स का सेट बनाएं (0 से n-1)। सभी एजेज़ के डेस्टिनेशन नोड्स (v) का सेट बनाएं। सोर्स नोड्स = सभी नोड्स - डेस्टिनेशन नोड्स (यानी इन-डिग्री 0 वाले)। यही मिनिमम वर्टेक्स सेट है। उद

  1. - पायथन में एक संख्या को दूसरी संख्या में बदलने के लिए आवश्यक न्यूनतम संक्रियाओं की संख्या खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक संख्या start और एक अन्य संख्या end है (start < end), हमें start को end में बदलने के लिए आवश्यक न्यूनतम संक्रियाओं की संख्या ढूंढनी है इन संक्रियाओं का उपयोग करके: 1 से बढ़ाएं 2 से गुणा करें उदाहरण के लिए, यदि इनपुट है start = 5, end = 11, तो आउटपुट होगा 2, क्योंकि हम 2 से ग

  1. - पायथन में एक स्ट्रिंग को दूसरी स्ट्रिंग का सबस्ट्रिंग बनाने के लिए आवश्यक न्यूनतम संक्रियाओं की संख्या खोजने का प्रोग्राम

    मान लीजिए हमारे पास दो स्ट्रिंग्स s और t हैं, हमें s के लिए आवश्यक न्यूनतम संक्रियाओं की मात्रा ढूंढनी है ताकि t, s का सबस्ट्रिंग बन जाए। अब, प्रत्येक संक्रिया में, हम s में किसी भी स्थिति को चुन सकते हैं और उस स्थिति के वर्ण को किसी अन्य वर्ण में बदल सकते हैं। उदाहरण के लिए, यदि इनपुट है s = abbpq