Skip to content

Commit 1f9f70f

Browse files
authoredMar 19, 2024
Update 16-3sum-closest.js
1 parent 4a74f7f commit 1f9f70f

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed
 

‎16-3sum-closest.js

+30
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,33 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} target
4+
* @return {number}
5+
*/
6+
const threeSumClosest = function(nums, target) {
7+
let n = nums.length, {abs, min, max} = Math
8+
let res = nums[0] + nums[1] + nums[2]
9+
nums.sort((a, b) => a - b)
10+
for(let i = 0; i < n - 2; i++) {
11+
let e = nums[i]
12+
let l = i + 1, r = n - 1
13+
if(i > 0 && nums[i] === nums[i - 1]) continue
14+
while(l < r) {
15+
const tmp = e + nums[l] + nums[r]
16+
if(abs(tmp - target) < abs(res - target)) {
17+
res = tmp
18+
}
19+
if(tmp > target) r--
20+
else if (tmp < target) l++
21+
else return tmp
22+
}
23+
}
24+
25+
26+
return res
27+
};
28+
29+
// another
30+
131
/**
232
* @param {number[]} nums
333
* @param {number} target

0 commit comments

Comments
 (0)
Please sign in to comment.