কম্পিউটার

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


ধরুন আমাদের কাছে nums নামক সংখ্যার একটি তালিকা এবং একটি মান k আছে। প্রথমে আমরা k আকারের একটি সাবলিস্ট মুছে ফেলব, তারপর ন্যূনতম (সর্বোচ্চ সংখ্যা - সর্বনিম্ন সংখ্যা) খুঁজে বের করব।

সুতরাং, ইনপুট যদি nums =[2, 3, 10, 9, 8, 4] k =3 এর মত হয়, তাহলে আউটপুট হবে 2, যদি আমরা [10, 9, 8] সরিয়ে ফেলি তবে আমরা [2, 3, 4] এবং 4 - 2 =2

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

  • N :=সংখ্যার আকার

  • সংখ্যাগুলিকে lmin এবং lmax এ অনুলিপি করুন

  • এছাড়াও rmin এবং rmax

    -এ সংখ্যা কপি করুন
  • আমি 1 থেকে N - 1 রেঞ্জের জন্য, করুন

    • lmin[i] :=সর্বনিম্ন lmin[i] এবং lmin[i - 1]

    • lmax[i] :=lmax[i] এবং lmax[i - 1]

  • N - 2 থেকে 0 রেঞ্জের i এর জন্য, 1 দ্বারা হ্রাস করুন, করুন

    • rmin[i] :=ন্যূনতম rmin[i] এবং rmin[i + 1]

    • rmax[i] :=rmax[i] এবং rmax[i + 1]

  • উত্তর :=সর্বনিম্ন (rmax[k] - rmin[k]), (lmax[k এর পরিপূরক] - lmin[k এর পরিপূরক])

  • আমি 0 থেকে N - k - 2 রেঞ্জের জন্য, কর

    • cand :=(lmax[i] এবং rmax[i + k + 1] এর সর্বোচ্চ) - (সর্বনিম্ন lmin[i] এবং rmin[i + k + 1])

    • উত্তর :=সর্বনিম্ন উত্তর এবং ক্যান্ড

  • উত্তর ফেরত দিন

উদাহরণ

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

def solve(nums, k):
   N = len(nums)
   lmin, lmax = nums[:], nums[:]
   rmin, rmax = nums[:], nums[:]
   for i in range(1, N):
      lmin[i] = min(lmin[i], lmin[i - 1])
      lmax[i] = max(lmax[i], lmax[i - 1])
   for i in range(N - 2, -1, -1):
      rmin[i] = min(rmin[i], rmin[i + 1])
      rmax[i] = max(rmax[i], rmax[i + 1])

   ans = min(rmax[k] - rmin[k], lmax[~k] - lmin[~k])
   for i in range(N - k - 1):
      cand = max(lmax[i], rmax[i + k + 1]) - min(lmin[i], rmin[i + k + 1])
      ans = min(ans, cand)

   return ans

nums = [2, 3, 10, 9, 8, 4]
k = 3
print(solve(nums, k))

ইনপুট

[2, 3, 10, 9, 8, 4], 3

আউটপুট

2

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

  2. পাইথনে k পরপর ডুপ্লিকেট অক্ষর মুছে ফেলার পর স্ট্রিং খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে k অপারেশনের পর সর্বনিম্ন সম্ভাব্য সর্বোচ্চ মান খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে K বৃদ্ধির পর দীর্ঘতম সমতুল্য সাবলিস্ট খুঁজতে প্রোগ্রাম