程序查找k大小的列表,其中在Python中最大和最小项之间的差异最小

假设我们有一个称为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
猜你喜欢