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 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告