ধরুন আমাদের কাছে ব্যবধানের একটি তালিকা আছে, যেখানে প্রতিটি ব্যবধান হল [শুরু, শেষ] এর মত এটি একটি ব্যবধানের সূচনা এবং শেষ সময়ের প্রতিনিধিত্ব করে (অন্তর্ভুক্ত), আমাদের তাদের ছেদ খুঁজে বের করতে হবে, অর্থাত্ প্রদত্ত সমস্ত ব্যবধানের মধ্যে থাকা অন্তর।
সুতরাং, যদি ইনপুটটি [[10, 110],[20, 60],[25, 75]] এর মত হয়, তাহলে আউটপুট হবে [25, 60]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- শুরু, শেষ :=ব্যবধান তালিকা থেকে শেষ উপাদান মুছে ফেলার পরে ব্যবধান
- যখন ব্যবধান খালি না থাকে, তখন কর
- start_temp, end_temp :=ব্যবধান তালিকা থেকে শেষ উপাদান মুছে ফেলার পর বিরতি
- start :=সর্বাধিক শুরু, start_temp
- শেষ :=সর্বনিম্ন শেষ, end_temp
- একটি ব্যবধান ফিরিয়ে দিন [শুরু, শেষ]
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
শ্রেণির সমাধান: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) ) প্রত্যাবর্তন [start, end]ob =Solution()intervals =[[10, 110],[20, 60],[25, 75]]print(ob.solve(intervals))
ইনপুট
<প্রে>[[10, 110],[20, 60],[25, 75]]আউটপুট
[25, 60]