ধরুন আমাদের কাছে বিভিন্ন সিনেমা প্রদর্শনের জন্য বিরতির একটি তালিকা আছে (সেগুলি ওভারল্যাপ করা যেতে পারে), আমাদের সমস্ত সিনেমা দেখানোর জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক প্রেক্ষাগৃহ খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুটটি অন্তরের মত হয় =[[20, 65],[0, 40],[50, 140]], তাহলে আউটপুট হবে 2, যেহেতু [20, 65] এবং [0, 40] ওভারল্যাপ হচ্ছে . [20, 65] এবং [50, 140] ওভারল্যাপিং কিন্তু [0, 40] এবং [50, 140] নয়। তাই আমাদের ২টি থিয়েটার দরকার।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব:
- t :=একটি নতুন তালিকা
- প্রতিটি বিরতির জন্য [a, b] ব্যবধানে, করুন
- t-এর শেষে [a, 1] ঢোকান
- t-এর শেষে [b, -1] ঢোকান
- উত্তর :=০, গণনা :=০
- প্রতিটি জোড়ার জন্য (x, d) টি সাজানো আকারে, করুন
- গণনা :=গণনা + ডি
- উত্তর :=সর্বাধিক উত্তর এবং গণনা
- উত্তর ফেরত দিন
আরও ভালভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি:
উদাহরণ কোড
শ্রেণির সমাধান:def solve(self, intervals):t =[] এর জন্য a, b in intervals:t.append((a, 1)) t.append((b, -1)) ans =count =x এর জন্য 0, সাজানো(t) এ d:গণনা +=d উত্তর =সর্বোচ্চ(আন, গণনা) ফেরত আনব =সমাধান()ব্যবধান =[[20, 65],[0, 40],[50, 140]] print(ob.solve(intervals))
ইনপুট
<প্রে>[[20, 65],[0, 40],[50, 140]]আউটপুট
2