首页 > 试题广场 >

小红的数组操作

[编程题]小红的数组操作
  • 热度指数:3819 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小红拿到了一个数组 a,每次操作小红可以选择数组中的任意一个数减去 x,小红一共能进行 k 次。
小红想在 k 次操作之后,数组的最大值尽可能小。请你返回这个最大值。
示例1

输入

[7,2,1],3,2

输出

2
#python 构建最大堆
import heapq
classSolution:
    defminMax(self, a: List[int], k: int, x: int) -> int:
        # write code here
        heap =[]
        foridx, item inenumerate(a):
            heapq.heappush(heap, (-item, idx))
        whilek > 0:
            e =heapq.heappop(heap)
            heapq.heappush(heap, (e[0] +x, e[1]))
            k -=1
        return-heapq.heappop(heap)[0]
发表于 2022-07-23 14:18:21 回复(0)