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
廣告