Python程序:查找大小为k的列表,列表中最大值和最小值的差最小
假设我们有一个名为nums的数字列表和一个整数k,我们必须从nums中选择元素来创建一个大小为k的列表,使得列表中最大整数和最小整数之间的差值尽可能小。我们将返回这个差值。
因此,如果输入类似于nums = [3, 11, 6, 2, 9],k = 3,则输出将为4,因为我们可以创建的最佳列表是[2, 3, 6]。
为了解决这个问题,我们将遵循以下步骤:
对列表nums进行排序
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
广告