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

पायथन में अंतराल की सूची से सबसे लंबे अंतराल की लंबाई खोजने का प्रोग्राम


मान लीजिए हमारे पास अंतराल की एक सूची है जहां प्रत्येक अंतराल [start, end] रूप में है। हमें ओवरलैपिंग अंतरालों को मर्ज करके बनाए जा सकने वाले सबसे लंबे अंतराल को ढूंढना है।

उदाहरण के लिए, यदि इनपुट [[1, 6],[4, 9],[5, 6],[11, 14],[16, 20]] है, तो आउटपुट 9 होगा, क्योंकि मर्ज करने के बाद, हमारे पास अंतराल [1, 9] है जिसकी लंबाई 9 है।

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

इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  • intervals को सॉर्ट करें
  • union := intervals[0]
  • best := union[1] - union[0] + 1
  • प्रत्येक (s, e) के लिए intervals[1:] में:
    • यदि s <= union[1]:
      • union[1] := max(union[1], e)
    • अन्यथा:
      • union := [s, e]
    • best := max(best, union[1] - union[0] + 1)
  • best लौटाएं

उदाहरण कोड

class Solution:
    def solve(self, intervals):
        intervals.sort()
        union = intervals[0]
        best = union[1] - union[0] + 1
        for s, e in intervals[1:]:
            if s <= union[1]:
                union[1] = max(union[1], e)
            else:
                union = [s, e]
            best = max(best, union[1] - union[0] + 1)
        return best

ob = Solution()
intervals = [[1, 6],[4, 9],[5, 6],[11, 14],[16, 20]]
print(ob.solve(intervals))

इनपुट

[[1, 6],[4, 9],[5, 6],[11, 14],[16, 20]]

आउटपुट

9

  1. - पायथन में अंतरालों की सूची से कुल यूनिक अवधि खोजने का प्रोग्राम

    मान लीजिए हमारे पास अंतराल की एक सूची है जहां प्रत्येक सूची एक अंतराल [start, end] (सम्मिलित) दर्शाती है। हमें कुल यूनिक अवधि ढूंढनी है जो यह कवर करती है।उदाहरण के लिए, यदि इनपुट intervals = [[2,11],[13,31],[41,61]] है, तो आउटपुट 50 होगा, क्योंकि कुल यूनिक कवर दूरी (11-2+1)=10 फिर (31-13+1)=19 और (6

  1. - पायथन में स्ट्रिंग्स की सूची से सबसे लंबा सामान्य उपसर्ग खोजने का प्रोग्राम

    मान लीजिए हमारे पास लोअरकेस स्ट्रिंग्स की एक सूची है, हमें सबसे लंबा सामान्य उपसर्ग ढूंढना है। उदाहरण के लिए, यदि इनपुट [antivirus, anticlockwise, antigravity] है, तो आउटपुट anti होगा। इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे: words सूची को वर्णमाला क्रम में क्रमबद्ध करें prefix := एक नई स

  1. - पायथन प्रोग्राम सूची से N सबसे बड़े तत्व खोजने के लिए

    एक पूर्णांक सूची दी गई है, हमारा कार्य सूची में N सबसे बड़े तत्व ढूंढना है। उदाहरण इनपुट : [40, 5, 10, 20, 9] N = 2 आउटपुट: [40, 20] एल्गोरिदम चरण 1: एक पूर्णांक सूची और सबसे बड़ी संख्या की संख्या इनपुट करें। चरण 2: पहले सूची को N बार पार करें। चरण 3: प्रत्येक पारगमन में सबसे बड़ा मान ढूंढें और इसे