কম্পিউটার

কে-আকারের তালিকা খুঁজে বের করার প্রোগ্রাম যেখানে পাইথনে বৃহত্তম এবং ক্ষুদ্রতম আইটেমের মধ্যে পার্থক্য ন্যূনতম


ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে যার নাম nums এবং একটি পূর্ণসংখ্যা k, আমাদেরকে k আকারের একটি তালিকা তৈরি করতে সংখ্যা থেকে উপাদান নির্বাচন করতে হবে যাতে তালিকার বৃহত্তম পূর্ণসংখ্যা এবং ক্ষুদ্রতম পূর্ণসংখ্যার মধ্যে পার্থক্য যতটা সম্ভব কম হয়। এবং আমরা এই পার্থক্য ফিরিয়ে দেব।

সুতরাং, যদি ইনপুটটি nums =[3, 11, 6, 2, 9], k =3 এর মত হয়, তাহলে আউটপুট হবে 4, যেহেতু আমরা তৈরি করতে পারি সেরা তালিকা হল [2, 3, 6]।

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

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

  • ls :=একটি নতুন তালিকা

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

    • ls এর শেষে nums[i + k - 1] - nums[i] ঢোকান

  • ন্যূনতম ls ফেরত দিন

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

উদাহরণ

class Solution:
   def solve(self, nums, k):
      nums.sort()
      ls = []
      for i in range(len(nums) - k + 1):
         ls.append(nums[i + k - 1] - nums[i])
      return min(ls)
ob = Solution()
nums = [3, 11, 6, 2, 9]
k = 3
print(ob.solve(nums, k))

ইনপুট

[3, 11, 6, 2, 9],3

আউটপুট

4

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

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

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

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