Skip to content

Commit 7adf7e4

Browse files
authored
Create 1300-sum-of-mutated-array-closest-to-target.js
1 parent 8037094 commit 7adf7e4

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/**
2+
* @param {number[]} arr
3+
* @param {number} target
4+
* @return {number}
5+
*/
6+
const findBestValue = function(arr, target) {
7+
let l, r, mi, s = 0, m = -1;
8+
for(let v of arr) { s += v; m = Math.max(m, v); }
9+
if(s <= target) return m;
10+
11+
for(l = 1, r = m; l < r;) {
12+
mi = ~~((l+r)/2);
13+
s = 0;
14+
for(let v of arr) s += (v > mi) ? mi : v;
15+
if(s >= target) r = mi;
16+
else l = mi + 1;
17+
}
18+
// check if we are 1 step off the target
19+
let s1=0,s2=0;
20+
for(let v of arr) {
21+
s1 += (v>l)?(l):v;
22+
s2 += (v>l-1)?(l-1):v;
23+
}
24+
25+
return (Math.abs(s2-target) <= Math.abs(s1-target)) ? l-1 : l;
26+
};

0 commit comments

Comments
 (0)