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 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告