मान लीजिए, हमें अंतराल का एक सेट दिया गया है जिसमें मान (ए, बी) शामिल हैं जहां ए प्रारंभिक समय का प्रतिनिधित्व करता है और बी किसी घटना के समाप्ति समय का प्रतिनिधित्व करता है। हमारा काम यह जांचना है कि इनमें से कोई भी अंतराल इस सेट में किसी अन्य अंतराल को पूरी तरह से ओवरलैप करता है या नहीं। यदि कोई अंतराल ओवरलैप होता है, तो हम परिणाम को सत्य के रूप में लौटाते हैं, अन्यथा हम गलत लौटाते हैं।
इसलिए, यदि इनपुट [(4,6), (10,12), (7,9), (13,16)] जैसा है, तो आउटपुट गलत होगा। अगर इनपुट [(4,6), (4,9), (7,11), (5,8)] जैसा है, तो आउटपुट सही होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- सूची अंतरालों को क्रमबद्ध करें
- i श्रेणी 1 से अंतराल के आकार के लिए, करें
- यदि अंतराल [i, 1] <=अंतराल [i-1, 1], तो
- सही लौटें
- झूठी वापसी
- यदि अंतराल [i, 1] <=अंतराल [i-1, 1], तो
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
def solve(intervals): intervals.sort() for i in range(1, len(intervals)): if intervals[i][1] <= intervals[i- 1][1]: return True return False intervals = [(4,6),(10,12),(7,9),(13,16)] intervals2 = [(4,6), (4,9), (7,11), (5,8)] print(solve(intervals)) print(solve(intervals2))
इनपुट
[(4,6),(10,12),(7,9),(13,16)] [(4,6), (4,9), (7,11), (5,8)]
आउटपुट
False True