কম্পিউটার

পাইথনে ব্যবধান সময়ের উপর ভিত্তি করে সর্বাধিক সংখ্যক কোর্স খুঁজে বের করার প্রোগ্রাম?


ধরুন আমাদের কাছে [শুরু, শেষ] ফর্মে বিরতির একটি তালিকা রয়েছে, এটি একটি কোর্সের শুরু এবং শেষের সময়কে প্রতিনিধিত্ব করছে। আমরা সর্বোচ্চ কতগুলি কোর্স করতে পারি তা খুঁজে বের করতে হবে, ধরে নিই যে আমরা একবারে একটি কোর্স করতে পারি এবং একটি কোর্সের শুরু শেষ কোর্সের শেষের চেয়ে পরে হওয়া দরকার।

সুতরাং, যদি ইনপুট সময় =[[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

  1. পাইথনে আমরা কতগুলো উপায়ে সিঁড়ি বেয়ে উঠতে পারি (সর্বাধিক k বারে সর্বোচ্চ ধাপ) খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে একাধিকবার স্টক মার্কেটে কেনার মাধ্যমে আমরা সর্বাধিক লাভ পেতে পারি তা খুঁজে বের করার প্রোগ্রাম

  3. পাইথন প্রোগ্রামে প্রাইম নম্বর খোঁজার জন্য বিভিন্ন পদ্ধতির বিশ্লেষণ

  4. পাইথন প্রোগ্রাম সর্বোচ্চ তিনটি।