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

更新于:2020年10月9日

163 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告