Most Profit Assigning Work LeetCode solution in JavaScript

1
var maxProfitAssignment = function (difficulty, profit, worker) {
2
const data = [];
3

4
for (let i = 0; i < difficulty.length; i++) {
5
data.push({ difficulty: difficulty[i], profit: profit[i] });
6
}
7

8
data.sort((a, b) => a.difficulty - b.difficulty);
9

10
let maxProfit = 0;
11

12
for (let i = 0; i < data.length; i++) {
13
data[i].profit = maxProfit = Math.max(maxProfit, data[i].profit);
14
}
15

16
// worker.sort((a, b) => a - b);
17

18
let ans = 0;
19
let min = 0;
20

21
for (const skill of worker) {
22
let left = 0; // min;
23
let right = data.length - 1;
24

25
while (left < right) {
26
const mid = Math.floor((left + right + 1) / 2);
27

28
if (data[mid].difficulty > skill) {
29
right = mid - 1;
30
} else {
31
left = mid;
32
}
33
}
34

35
if (data[left].difficulty > skill) {
36
continue;
37
}
38

39
// min = left;
40
ans += data[left].profit;
41
}
42

43
return ans;
44
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0