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