কম্পিউটার

পাইথনের অন্তর্বর্তী তালিকা থেকে দীর্ঘতম ব্যবধানের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে একটি ব্যবধানের তালিকা আছে যেখানে প্রতিটি ব্যবধান আকারে আছে [শুরু, শেষ]। যেকোন সংখ্যক ওভারল্যাপিং ব্যবধানকে একত্রিত করে আমরা দীর্ঘতম ব্যবধানটি খুঁজে বের করতে পারি।

সুতরাং, যদি ইনপুটটি [[1, 6],[4, 9],[5, 6],[11, 14],[16, 20]] এর মত হয়, তাহলে আউটপুট হবে 9, মার্জ করার পরে, আমাদের একটি দৈর্ঘ্য 9 এর ব্যবধান [1, 9] আছে।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • তালিকা ব্যবধান বাছাই
  • ইউনিয়ন :=ব্যবধান তালিকা থেকে প্রথম ব্যবধান
  • সর্বোত্তম :=ইউনিয়ন[শেষ] - ইউনিয়ন[শুরু] + 1
  • প্রথমটি ব্যতীত প্রতিটি শুরুর সময় s এবং শেষের সময় e এর জন্য, করুন
    • যদি s <=union[end] হয়, তাহলে
      • ইউনিয়ন[এন্ড] :=সর্বাধিক ইউনিয়ন[এন্ড] এবং ই
    • অন্যথায়,
      • ইউনিয়ন :=একটি নতুন ব্যবধান [s, e]
    • সর্বোত্তম :=সর্বোত্তম এবং ইউনিয়ন[শেষ] - ইউনিয়ন[শুরু] + 1
  • সর্বোত্তম রিটার্ন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

শ্রেণির সমাধান:def solve(self, intervals):intervals.sort() union =intervals[0] best =union[1] - union[0] + 1 এর জন্য s, e in intervals[1:]:if s <=union[1]:union[1] =max(union[1], e) else:union =[s, e] best =max(best, union[1] - union[0] + 1) রিটার্ন bestob =সমাধান()ব্যবধান =[[1, 6],[4, 9],[5, 6],[11, 14],[16, 20]]print(ob.solve(intervals))

ইনপুট

<প্রে>[[1, 6],[4, 9],[5, 6],[11, 14],[16, 20]]

আউটপুট

9

  1. পাইথনে ব্যবধানের তালিকা থেকে মোট অনন্য সময়কাল খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে দীর্ঘতম প্যালিনড্রোমিক সাবস্ট্রিং এর দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  3. পাইথনের স্ট্রিংগুলির তালিকা থেকে দীর্ঘতম সাধারণ উপসর্গ খুঁজে বের করার জন্য প্রোগ্রাম

  4. একটি তালিকা থেকে N বৃহত্তম উপাদান খুঁজে পেতে পাইথন প্রোগ্রাম