ধরা যাক nums নামক একটি সংখ্যার তালিকা এবং একটি পূর্ণসংখ্যা k আছে। nums থেকে k আকারের একটি তালিকা বানাতে হবে যাতে সাবলিস্টের সর্বোচ্চ ও সর্বনিম্ন মানের পার্থক্য ন্যূনতম হয়। সেই পার্থক্য ফেরত দিন।
উদাহরণ: nums = [3, 11, 6, 2, 9], k = 3 হলে আউটপুট 4, কারণ সেরা তালিকা [2, 3, 6]।
সমাধানের ধাপসমূহ
- nums সর্ট করুন।
- ls := নতুন তালিকা
- i = 0 থেকে len(nums) - k + 1 পর্যন্ত: ls-এ nums[i + k - 1] - nums[i] অ্যাপেন্ড করুন।
- min(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