Skip to content

Commit dd65e42

Browse files
authored
Create 1606-find-servers-that-handled-most-number-of-requests.js
1 parent b32dac2 commit dd65e42

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/**
2+
* @param {number} k
3+
* @param {number[]} arrival
4+
* @param {number[]} load
5+
* @return {number[]}
6+
*/
7+
const busiestServers = function (k, arrival, load) {
8+
const ark = []
9+
const map = new Map()
10+
let max = 0
11+
for (let i = 0; i < arrival.length; i++) {
12+
if (i < k) {
13+
ark[i] = arrival[i] + load[i]
14+
map.set(i, 1)
15+
max = Math.max(max, map.get(i))
16+
} else {
17+
let server = i % k
18+
const curr = server
19+
while (server < k) {
20+
if (ark[server] <= arrival[i]) {
21+
ark[server] = arrival[i] + load[i]
22+
map.set(server, map.has(server) ? map.get(server) + 1 : 1)
23+
max = Math.max(max, map.get(server))
24+
break
25+
}
26+
server++
27+
}
28+
if (server === k) {
29+
let l = 0
30+
while (l < curr) {
31+
if (ark[l] <= arrival[i]) {
32+
ark[l] = arrival[i] + load[i]
33+
map.set(l, map.has(l) ? map.get(l) + 1 : 1)
34+
max = Math.max(max, map.get(l))
35+
break
36+
}
37+
l++
38+
}
39+
}
40+
}
41+
}
42+
43+
const result = []
44+
const entries = map[Symbol.iterator]()
45+
for (let en of entries) {
46+
if (en[1] === max) {
47+
result.push(en[0])
48+
}
49+
}
50+
return result
51+
}

0 commit comments

Comments
 (0)