在Python中查找K个操作后可能的最小最大值的程序

在Python中查找K个操作后可能的最小最大值的程序

假设我们有一个称为nums的数字列表和另一个值k。现在让我们考虑一个操作,其中我们可以从列表中的任何元素中减去1。我们可以执行此操作k次。我们必须在k次操作后在列表中找到可能的最小最大值。

因此,如果输入为nums = [3、4、6、5] k = 6,则输出将为3,因为我们可以将4减少一次,将6降低三次,将5降低两次以获得[3、3、3、3]。

要解决这个问题,我们将遵循以下步骤:

  • 将数字按倒序排序
  • i:= 0
  • curr:= nums [0]
  • 当k>0时,执行以下操作
    • 当i<nums大小并且nums [i]与curr相同时,执行以下操作
      • i:= i + 1
    • 如果k≥i,则
      • k:= k – i
      • curr:= curr-1
    • 否则,
      • 返回curr
  • 返回curr

以下是以下实现,以获得更好的理解:

示例

class Solution:
   def solve(self, nums, k):
      nums.sort(reverse=True)
      i = 0
      curr = nums[0]
      while k > 0:
         while i < len(nums) and nums[i] == curr:
            i += 1
         if k >= i:
            k -= i
            curr -= 1
         else:
            return curr
      return curr

ob = Solution()
nums = [3, 4, 6, 5]
k = 6
print(ob.solve(nums, k))

输入

[3、4、6、5],6 

输出

3

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程