2020-03-14

5359. 最大的团队表现值

公司有编号为 1 到 n 的 n 个工程师,给你两个数组 speed 和 efficiency ,其中 speed[i] 和 efficiency[i] 分别代表第 i 位工程师的速度和效率。请你返回由最多 k 个工程师组成的 ​​​​​​最大团队表现值 ,由于答案可能很大,请你返回结果对 10^9 + 7 取余后的结果。

团队表现值 的定义为:一个团队中「所有工程师速度的和」乘以他们「效率值中的最小值」。

from queue import PriorityQueue

class Solution:

    def maxPerformance(self, n: int, speed: List[int], efficiency: List[int], k: int) -> int:

        arr = [(speed[i], efficiency[i]) for i in range(n)]

        arr.sort(key=lambda item:item[1], reverse=True)

        pq = PriorityQueue()

        sumk = 0

        res = 0

        MOD = 10**9 + 7

        for i in range(n):

            pq.put(arr[i][0])

            sumk += arr[i][0]

            if pq.qsize() > k:

                sumk -= pq.get()

            #若包含arr[i]则tempt为团队值,如果不包含则tempt < res

            tempt = sumk * arr[i][1]

            if tempt > res:

                res = tempt

        return res % MOD

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容