কম্পিউটার টিউটোরিয়াল

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


মান ল করুন intervals নামের একটি ২D সংখ্যার তালিকা যেখানে প্রতিটি সারি [start, end] (ইনক্লুসিভ) ইন্টারভাল বোঝায়। একটি ইন্টারভাল [a, b] (a < b) এর সাইজ হল (b - a)। আমাদের দিয়ে गये লিস্টে একটি ইন্টারভাল যোগ করতে হবে যাতে সব ইন্টারভাল মার্জ করার পর ঠিক একটি রেঞ্জ বäche। যোগ করা ইন্টারভালের ন্যূনতম সম্ভাব্য সাইজ খুঁজে বের করতে হবে।

যদি ইনপুট হয় intervals = [[15, 20],[30, 50]], তবে আউটপুট হবে ১০, কারণ আমরা [20, 30] ইন্টারভালটি যোগ করতে পারি যা ন্যূনতম সম্ভাব্য।

এটি সমাধান করতে আমরা নিম্নলিখিত ধাপগুলি অনুসরণ করব:

  • events := একটি নতুন তালিকা
  • intervals-এ থাকা প্রতিটি (s, e) জন্য:
    • (s, 1) events-এ যোগ করুন
    • (e, -1) events-এ যোগ করুন
  • events তালিকাটি সাজান
  • curr_status := 0, last := null
  • interval := [0, 0]
  • events-এ থাকা প্রতিটি (time, status) জন্য:
    • যদি curr_status == 0 এবং last থাকে এবং time > last, তবে:
      • যদি interval[0] == 0, interval[0] := last
      • interval[1] := time
    • last := time
    • curr_status := curr_status + status
  • interval[1] - interval[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. পাইথনে লিস্টে সর্বোচ্চ ও ন্যূনতম উপাদানের পজিশন বের করার প্রোগ্রাম