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

पायथन में ओवरलैपिंग अंतराल खोजकर उन्हें आरोही क्रम में लौटाने का प्रोग्राम


मान लीजिए हमारे पास क्लोज्ड अंतराल की एक सूची और दूसरी अंतरालों की सूची है। व्यक्तिगत रूप से, प्रत्येक सूची नॉन-ओवरलैपिंग है और नॉन-डिक्रीजिंग क्रम में सॉर्टेड है। हमें दोनों अंतरालों के ओवरलैप को नॉन-डिक्रीजिंग क्रम में ढूंढना है।

उदाहरण के लिए, यदि इनपुट inv1 = [[50,100],[190,270],[310,330]] और inv2 = [[40,120],[180,190]] है, तो आउटपुट [[50,100], [190,190]] होगा।

समाधान दृष्टिकोण

इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे (टू-पॉइंटर):

  • ans := [], i := 0, j := 0
  • जब तक i < len(A) और j < len(B):
    • start := max(A[i][0], B[j][0])
    • end := min(A[i][1], B[j][1])
    • यदि start <= end: ans.append([start, end])
    • यदि A[i][1] < B[j][1]: i += 1
    • अन्यथा: j += 1
  • ans लौटाएं

उदाहरण कोड

class Solution:
    def solve(self, A, B):
        ans = []
        i = j = 0
        while i < len(A) and j < len(B):
            start = max(A[i][0], B[j][0])
            end = min(A[i][1], B[j][1])
            if start <= end:
                ans.append([start, end])
            if A[i][1] < B[j][1]:
                i += 1
            else:
                j += 1
        return ans

ob = Solution()
inv1 = [[50,100],[190,270],[310,330]]
inv2 = [[40,120],[180,190]]
print(ob.solve(inv1, inv2))

इनपुट

[[50,100],[190,270],[310,330]], [[40,120],[180,190]]

आउटपुट

[[50,100], [190,190]]

  1. - पायथन में अद्वितीय सरणी के सन्निकट अंतराल खोजने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक अद्वितीय संख्याओं की एक सूची है। हमें संख्याओं की एक क्रमबद्ध 2D मैट्रिक्स ढूंढनी है जहां प्रत्येक सूची एक समावेशी अंतराल को दर्शाती है जो nums में सन्निकट संख्याओं को सारांशित करती है। उदाहरण के लिए, यदि इनपुट nums = [10, 11, 12, 15, 16, 17, 28, 30] है, तो आउटपुट [[10

  1. - पायथन में K और -K

    मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, हमें सबसे बड़ी संख्या k ढूंढनी है जहां k और -k दोनों nums में मौजूद हों (वे समान संख्या हो सकते हैं)। यदि ऐसा कोई तत्व नहीं है, तो -1 लौटाएं। उदाहरण के लिए, यदि इनपुट है [-5, 2, 9, -6, 5, -9], तो आउटपुट होगा 9। हल करने के चरण L1 := nums में 0 औ

  1. - पायथन में प्रतिच्छेदी अंतराल खोजें

    मान लीजिए हमारे पास अंतराल की एक सूची है, जहां प्रत्येक अंतराल [start, end] जैसा है जो एक अंतराल के प्रारंभ और अंत समय को दर्शाता है (समावेशी)। हमें उनका प्रतिच्छेदन ढूंढना है, यानी वह अंतराल जो दिए गए सभी अंतरालों के भीतर स्थित है। उदाहरण के लिए, यदि इनपुट है [[10, 110], [20, 60], [25, 75]], तो आउ