Minimum Cost to Hire K Workers LeetCode solution in Python
1class Solution:2def mincostToHireWorkers(3self, quality: List[int], wage: List[int], k: int4) -> float:5n = len(wage)6arr = [[wage[i] / quality[i], quality[i]] for i in range(n)]7arr.sort(key=lambda x: x[0])8kSmallest = 09pq = []10for i in range(k):11heapq.heappush(pq, -arr[i][1])12kSmallest += arr[i][1]13minCost = arr[k - 1][0] * kSmallest14for c in range(k, n):15if pq and abs(pq[0]) > arr[c][1]:16qRem = -heappop(pq)17kSmallest -= qRem18kSmallest += arr[c][1]19heappush(pq, -arr[c][1])20minCost = min(minCost, arr[c][0] * kSmallest)21return minCost