কম্পিউটার

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


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

সুতরাং, ইনপুট যদি nums =[4, 10, 3, 2, 8, 9] k =3 এর মত হয়, তাহলে আউটপুট হবে 2, কারণ যদি আমরা 10, 8 এবং 9 মুছে ফেলি তাহলে সর্বোচ্চ 4, সর্বনিম্ন 2 হবে তাই পার্থক্য 2।

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

  • তালিকার সংখ্যাগুলি সাজান

  • p :=সংখ্যার আকার - k

  • m :=(সংখ্যার শেষ উপাদান) - সংখ্যা[0]

  • i এর জন্য 0 থেকে সংখ্যার আকার - p, do

    • যদি nums[i + p - 1] - nums[i]

      • m :=সংখ্যা[i + p - 1] - সংখ্যা[i]

  • ফিরুন m

উদাহরণ

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

def solve(nums, k):
   nums = sorted(nums)
   p = len(nums) - k
   m = nums[-1] - nums[0]
   for i in range(0, len(nums) - p + 1):
      if nums[i + p - 1] - nums[i] < m:
         m = nums[i + p - 1] - nums[i]
   return m

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

ইনপুট

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

আউটপুট

2

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

  2. পাইথনে সর্বাধিক তিনবার উপাদান আপডেট করার পরে সর্বাধিক এবং মিনিটের ন্যূনতম পার্থক্য খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে একটি তালিকার অ-সংলগ্ন উপাদানগুলির বৃহত্তম যোগফল খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে তালিকার উপাদানগুলিকে সমান করার জন্য সর্বনিম্ন মোট খরচ খুঁজে বের করার প্রোগ্রাম