मान लीजिए कि हमारे पास अंतरालों की एक सूची है, जहां प्रत्येक अंतराल [प्रारंभ, अंत] जैसा है, यह एक अंतराल (समावेशी) के प्रारंभ और समाप्ति समय का प्रतिनिधित्व कर रहा है, हमें उनका प्रतिच्छेदन, यानी अंतराल जो सभी दिए गए अंतरालों में स्थित है।
इसलिए, यदि इनपुट [[10, 110], [20, 60], [25, 75]] जैसा है, तो आउटपुट [25, 60]
होगा।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- प्रारंभ, अंत:=अंतराल सूची से अंतिम तत्व को हटाने के बाद अंतराल
- जबकि अंतराल खाली नहीं है, करें
- start_temp, end_temp:=अंतराल सूची से अंतिम तत्व को हटाने के बाद अंतराल
- प्रारंभ:=प्रारंभ की अधिकतम, start_temp
- अंत:=न्यूनतम अंत, end_temp
- एक अंतराल लौटाएं [शुरू, अंत]
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, intervals): start, end = intervals.pop() while intervals: start_temp, end_temp = intervals.pop() start = max(start, start_temp) end = min(end, end_temp) return [start, end] ob = Solution() intervals = [[10, 110],[20, 60],[25, 75]] print(ob.solve(intervals))
इनपुट
[[10, 110],[20, 60],[25, 75]]
आउटपुट
[25, 60]