Python程式:在最多更新三個元素後查詢最大值和最小值之間的最小差值


假設我們有一個名為nums的數字列表,現在考慮一個操作,我們可以將一個元素更新為任何值。我們最多可以執行3次這樣的操作,我們必須找到nums中最大值和最小值之間的最小差值。

因此,如果輸入類似於nums = [2, 3, 4, 5, 6, 7],則輸出將為2,因為我們可以將列表更改為[4, 3, 4, 5, 4, 4],然後5 - 3 = 2。

為了解決這個問題,我們將遵循以下步驟:

  • 如果nums的大小<= 4,則
    • 返回0
  • n := nums的大小
  • 對列表nums進行排序
  • 返回nums[n-4 + i] - nums[i](對於所有i在0到3的範圍內)之間的最小差值

讓我們看看下面的實現,以便更好地理解:

示例

 線上演示

class Solution:
   def solve(self, nums):
      if len(nums) <= 4:
         return 0
      nums.sort()
      return min(nums[-4 + i] - nums[i] for i in range(4))
ob = Solution()
nums = [2, 3, 4, 5, 6, 7] print(ob.solve(nums))

輸入

[2, 3, 4, 5, 6, 7]

輸出

2

更新於:2020年10月19日

202 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.