কম্পিউটার

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


ধরুন আমাদের কাছে ব্যবধান নামে একটি 2D সংখ্যার তালিকা রয়েছে যেখানে প্রতিটি সারি [শুরু, শেষ] (অন্তর্ভুক্ত) ব্যবধানকে প্রতিনিধিত্ব করে। একটি ব্যবধানের জন্য [a, b] (a

সুতরাং, যদি ইনপুটটি ইন্টারভালের মত হয় =[[15, 20],[30, 50]], তাহলে আউটপুট হবে 10, কারণ আমরা ব্যবধান [20, 30] যোগ করতে পারি যা সম্ভাব্য সবচেয়ে ছোট ব্যবধান।

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

  • ইভেন্ট :=একটি নতুন তালিকা
  • প্রতিটি শুরু এবং শেষ সময়ের জন্য s, e বিরতিতে, করুন
    • ইভেন্টের শেষে (s, 1) সন্নিবেশ করুন
    • ইভেন্টের শেষে সন্নিবেশ (e, -1) করুন
  • তালিকা ইভেন্টগুলি সাজান
  • curr_status :=0, last :=null
  • ব্যবধান :=একটি জোড়া [0, 0]
  • ইভেন্টে প্রতিটি জোড়ার (সময়, অবস্থা) জন্য, করুন
    • যদি curr_status 0 এবং last এবং time> last এর মত হয়, তাহলে
      • যদি ব্যবধান[0] 0 এর সমান হয়, তাহলে
        • ব্যবধান[0] :=শেষ
      • ব্যবধান[1] :=সময়
    • শেষ :=সময়
    • curr_status :=curr_status + স্থিতি
  • রিটার্ন ইন্টারভাল[1] - ইন্টারভাল[0]

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

উদাহরণ

class Solution:
   def solve(self, intervals):
      events = []
      for s, e in intervals:
         events.append((s, 1))
         events.append((e, -1))
      events.sort()
      curr_status = 0
      last = None
      interval = [0, 0]
      for time, status in events:
         if curr_status == 0 and last and time > last:
            if interval[0] == 0:
               interval[0] = last
            interval[1] = time
         last = time
         curr_status += status
      return interval[1] - interval[0]
ob = Solution()
intervals = [[15, 20],[30, 50]] print(ob.solve(intervals))

ইনপুট

[[15, 20],[30, 50]]

আউটপুট

10

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

  2. সাজানো তালিকায় একটি উপাদান সন্নিবেশ করার জন্য পাইথন প্রোগ্রাম

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

  4. পাইথন প্রোগ্রাম একটি তালিকায় সর্বাধিক এবং সর্বনিম্ন উপাদানের অবস্থান খুঁজে পেতে?