Skip to content

Commit 55bde14

Browse files
authored
Update 2141-maximum-running-time-of-n-computers.js
1 parent 16a872c commit 55bde14

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

2141-maximum-running-time-of-n-computers.js

+32
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,35 @@
1+
/**
2+
* @param {number} n
3+
* @param {number[]} batteries
4+
* @return {number}
5+
*/
6+
const maxRunTime = function(n, batteries) {
7+
n = BigInt(n)
8+
batteries = batteries.map(e => BigInt(e))
9+
const sum = batteries.reduce((ac, e) => ac + e, 0n)
10+
let l = 0n, r = sum / n
11+
while(l < r) {
12+
const mid = r - (r - l) / 2n
13+
if(valid(mid)) l = mid
14+
else r = mid - 1n
15+
}
16+
17+
return l
18+
19+
function valid(mid) {
20+
let curSum = 0n, target = mid * n
21+
for(const e of batteries) {
22+
curSum += e > mid ? mid : e
23+
if(curSum >= target) return true
24+
}
25+
return false
26+
}
27+
};
28+
29+
30+
// another
31+
32+
133
/**
234
* @param {number} n
335
* @param {number[]} batteries

0 commit comments

Comments
 (0)