跳到主要内容

2931.购买物品的最大开销

链接:2931.购买物品的最大开销
难度:Hard
标签:贪心、数组、矩阵、排序、堆(优先队列)
简介:请你返回购买所有 m * n 件物品需要的 最大开销 。

题解 1 - python

  • 编辑时间:2024-12-12
  • 执行用时:175ms
  • 内存消耗:27.46MB
  • 编程语言:python
  • 解法介绍:贪心,每次找最便宜的
class Solution:
def maxSpending(self, values: List[List[int]]) -> int:
q = []
for i in range(len(values)): heappush(q, (values[i].pop(), i))
res = 0
cnt = 1
while q:
val, idx = heappop(q)
res += val * cnt
cnt += 1
if values[idx]: heappush(q, (values[idx].pop(), idx))
return res