ধরুন আমাদের কাছে [শুরু, শেষ] ফর্মে বিরতির একটি তালিকা রয়েছে, এটি একটি কোর্সের শুরু এবং শেষের সময়কে প্রতিনিধিত্ব করছে। আমরা সর্বোচ্চ কতগুলি কোর্স করতে পারি তা খুঁজে বের করতে হবে, ধরে নিই যে আমরা একবারে একটি কোর্স করতে পারি এবং একটি কোর্সের শুরু শেষ কোর্সের শেষের চেয়ে পরে হওয়া দরকার।
সুতরাং, যদি ইনপুট সময় =[[3, 6],[6, 9],[7, 8],[9, 11]] এর মত হয়, তাহলে আউটপুট হবে 3, যেমন আমরা কোর্স করতে পারি [[3] , 6], [7, 8], [9, 11]]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব:
-
শেষ সময়ের উপর ভিত্তি করে সময় সাজান
-
কাউন্টার :=0, শেষ :=-1
-
আমি 0 থেকে সময়ের আকারের মধ্যে, কর
-
যদি বার [i, 0]> শেষ অ-শূন্য হয়, তাহলে
-
কাউন্টার :=কাউন্টার + 1
-
শেষ :=বার[i, 1]
-
-
-
রিটার্ন কাউন্টার
আরও ভালভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি:
উদাহরণ
শ্রেণীর সমাধান:def solve(self, times):times.sort(key=lambda x:x[1]) counter =0 end =-1 in range(len(times)):if times[i ][0]> end:counter +=1 end =times[i][1] return counterob =Solution()times =[ [3, 6], [6, 9], [7, 8], [9, 11]]প্রিন্ট(ob.solve(times))
ইনপুট
<প্রে>[ [3, 6],[6, 9],[7, 8],[9, 11]]আউটপুট
3