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

pythonserver side programmingprogramming更新于 2026/1/17 23:08:17

假设我们有一个名为 nums 的数字列表和一个整数 k,我们必须从 nums 中选择元素来创建一个大小为 k 的列表,使得列表中最大整数和最小整数之间的差异尽可能小。我们将返回这个差值。

因此,如果输入为 nums = [3, 11, 6, 2, 9], k = 3,则输出将为 4,因为我们可以制作的最佳列表是 [2, 3, 6]。

为了解决这个问题,我们将遵循以下步骤 −

  • 对列表 nums 进行排序

  • ls := a new list

  • 对于 i 在 0 到 nums 大小 - k + 1 范围内,执行

    • 在 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

相关文章


有用资源