Skip to content

Commit c39cdbe

Browse files
authored
Create 857-minimum-cost-to-hire-k-workers.js
1 parent de63c72 commit c39cdbe

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

857-minimum-cost-to-hire-k-workers.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/**
2+
* @param {number[]} quality
3+
* @param {number[]} wage
4+
* @param {number} K
5+
* @return {number}
6+
*/
7+
const mincostToHireWorkers = function(quality, wage, K) {
8+
const workers = Array.from({length: quality.length}, () => new Array(2));
9+
for (let i = 0; i < quality.length; ++i) workers[i] = [wage[i] / quality[i], quality[i]];
10+
workers.sort((a, b) => a[0] - b[0])
11+
let res = Number.MAX_VALUE, qsum = 0;
12+
const queue = []
13+
for (let worker of workers) {
14+
qsum += worker[1];
15+
insert(queue, -worker[1])
16+
if (queue.length > K) qsum += queue.shift();
17+
if (queue.length === K) res = Math.min(res, qsum * worker[0]);
18+
}
19+
return res;
20+
};
21+
22+
function insert(arr, el) {
23+
for(let i = 0; i < arr.length; i++) {
24+
if(arr[i] > el) {
25+
arr.splice(i, 0, el)
26+
return
27+
}
28+
}
29+
arr.push(el)
30+
}

0 commit comments

Comments
 (0)