ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে যার নাম 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