假设我们有一个称为nums的数字列表,另一个值为k。现在让我们考虑一个可以从列表中的任何元素减去1的操作。我们可以执行此操作k次。经过k次此类操作后,我们必须在列表中找到最小值。
因此,如果输入像nums = [3,4,6,5] k = 6,则输出将为3,因为我们可以减少4次,6次和5次两次以获得[3,3,3, 3]。
为了解决这个问题,我们将按照以下步骤操作:
让我们看下面的实现以更好地理解:
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