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

पायथन में लक्ष्य अंतराल को मर्ज करके अंतराल खोजने का कार्यक्रम

मान लीजिए कि हमारे पास गैर-अतिव्यापी अंतरालों की एक सूची है। इन्हें समाप्ति समय के आधार पर क्रमबद्ध किया जाता है। हमारे पास एक और अंतराल लक्ष्य है, लक्ष्य विलय करने के बाद अंतिम अंतराल खोजें ताकि अंतराल अभी भी गैर-अतिव्यापी और क्रमबद्ध हों।

इसलिए, यदि इनपुट अंतराल =[[1, 15], [25, 35], [75, 90]], लक्ष्य =[10, 30] की तरह है, तो आउटपुट [[1, 35], [ 75, 90]] पहले दो अंतरालों के रूप में [1, 15] और [25, 35] को मिला दिया गया है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • iv के अंत में लक्ष्य डालें

  • प्रारंभ समय के आधार पर iv क्रमबद्ध करें

  • रेस :=पहले अंतराल के साथ एक नई सूची

  • मैं :=1

  • जबकि मैं

    • यदि iv का प्रारंभ समय [i] <=रेस के अंतिम अंतराल का अंत समय है, तो

      • रेस के अंतिम अंतराल का अंत समय =अधिकतम (रेस के अंतिम अंतराल का अंतिम समय और iv[i] का अंतिम समय)

    • अन्यथा,

      • रेस के अंत में iv[i] डालें

    • मैं :=मैं + 1

  • रिटर्न रेस

उदाहरण (पायथन)

आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -

class Solution:
   def solve(self, iv, target):
      iv.append(target)
      iv.sort(key=lambda x: x[0])
      res = [iv[0]]
      i = 1
      while i < len(iv):
         if iv[i][0] <= res[-1][1]:
            res[-1][1] = max(res[-1][1], iv[i][1])
         else:
            res.append(iv[i])
         i += 1
      return res
ob = Solution()
intervals = [
   [1, 15],
   [25, 35],
   [75, 90]
]
target = [10, 30]
print(ob.solve(intervals, target))

इनपुट

[[1, 15],[25, 35],[75, 90]], [10, 30]

आउटपुट

[[1, 35], [75, 90]]

  1. न्यूनतम संख्या रंग खोजने का कार्यक्रम पायथन में विलय के बाद रहता है

    मान लीजिए हमारे पास रंगों की एक सूची है (आर, जी, बी)। अब अगर दो अलग-अलग रंग एक-दूसरे के बगल में हों तो वे तीसरे रंग की एक ही रंग की वस्तु में बदल सकते हैं। हमें ऐसे परिवर्तनों के किसी भी संभावित क्रम के बाद शेष बची सबसे छोटी संख्या ज्ञात करनी होगी। इसलिए, यदि इनपुट रंग =[G, R, G, B, R] जैसा है, तो

  1. अजगर में 1 के साथ वर्ग सबमैट्रिस की संख्या खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक 2D बाइनरी मैट्रिक्स है, हमें सभी 1 s के साथ वर्ग सबमैट्रिस की कुल संख्या ज्ञात करनी है। तो, अगर इनपुट पसंद है 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 0 1 1 तो आउटपुट 17 होगा क्योंकि 12 (1 x 1) वर्ग, 4 (2 x 2) वर्ग और 1 (3 x 3) वर्ग

  1. पायथन में कम से कम चक्र लंबाई होल्डिंग लक्ष्य खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक निर्देशित ग्राफ की आसन्नता सूची है, जहां सूचकांक i पर प्रत्येक सूची नोड i से जुड़े नोड्स का प्रतिनिधित्व करती है। हमारे पास एक लक्ष्य मूल्य भी है। हमें लक्ष्य वाले सबसे छोटे चक्र की लंबाई ज्ञात करनी है। अगर कोई समाधान नहीं है तो वापसी -1. तो, अगर इनपुट पसंद है 0 है, लेक