假设我们有一个称为nums的数字列表和一个整数k,我们必须从nums中选择元素以创建大小为k的列表,以使列表中最大的整数和最小的整数之间的差值尽可能小。我们将退还差额。
因此,如果输入像nums = [3,11,6,2,9],k = 3,那么输出将是4,因为我们可以做的最佳列表是[2,3,6]。
为了解决这个问题,我们将遵循以下步骤-排序列表编号
ls:=一个新列表
对于范围从0到nums-k + 1的i,执行在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