मान लीजिए कि हमारे पास अंतरालों की एक सूची है, जहां प्रत्येक अंतराल [प्रारंभ, अंत] जैसा है, यह एक अंतराल (समावेशी) के प्रारंभ और समाप्ति समय का प्रतिनिधित्व कर रहा है, हमें उनका प्रतिच्छेदन, यानी अंतराल जो सभी दिए गए अंतरालों में स्थित है।पी>
इसलिए, यदि इनपुट [[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]