File tree Expand file tree Collapse file tree 3 files changed +43
-10
lines changed Expand file tree Collapse file tree 3 files changed +43
-10
lines changed Original file line number Diff line number Diff line change 17
17
| 13| [ Roman to Integer] ( https://leetcode.com/problems/roman-to-integer/ ) | [ JavaScript] (./algorithms/Roman to Integer.js)| Easy|
18
18
| 14| [ Longest Common Prefix] ( https://leetcode.com/problems/longest-common-prefix/ ) | [ JavaScript] (./algorithms/Longest Common Prefix.js)| Easy|
19
19
| 15| [ 3Sum] ( https://leetcode.com/problems/3sum/ ) | [ JavaScript] ( ./algorithms/3Sum.js ) | Medium|
20
+ | 16| [ 3Sum Closest] ( https://leetcode.com/problems/3sum-closest/ ) | [ JavaScript] (./algorithms/3Sum Closest.js)| Medium|
20
21
| 371| [ Sum of Two Integers] ( https://leetcode.com/problems/sum-of-two-integers/ ) | [ JavaScript] (./algorithms/Sum of Two Integers.js)| Easy|
21
22
| 372| [ Super Pow] ( https://leetcode.com/problems/super-pow/ ) | [ JavaScript] ( ./algorithms/SuperPow.js ) | Medium|
22
23
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number[] } nums
3
+ * @param {number } target
4
+ * @return {number }
5
+ */
6
+ var threeSumClosest = function ( nums , target ) {
7
+ nums . sort ( function ( a , b ) {
8
+ return a - b ;
9
+ } )
10
+ var result = null , len = nums . length ;
11
+ for ( var i = 0 ; i < len ; i ++ ) {
12
+ if ( nums [ i ] === nums [ i - 1 ] ) {
13
+ continue ;
14
+ }
15
+ var low = i + 1 , high = len - 1 ;
16
+ while ( low < high ) {
17
+ var sum = nums [ low ] + nums [ high ] + nums [ i ] ;
18
+ if ( sum === target ) {
19
+ return target ;
20
+ }
21
+ else if ( sum < target ) {
22
+ low ++ ;
23
+ }
24
+ else {
25
+ high -- ;
26
+ }
27
+ if ( result === null || Math . abs ( sum - target ) < Math . abs ( result - target ) ) {
28
+ result = sum ;
29
+ }
30
+ }
31
+ }
32
+ return result ;
33
+ } ;
Original file line number Diff line number Diff line change 4
4
* @return {number[] }
5
5
*/
6
6
var twoSum = function ( nums , target ) {
7
- var newArray = [ ] ;
8
- var l = nums . length
9
- for ( var i = 0 ; i < l ; i ++ ) {
10
- for ( var j = i + 1 ; j < l ; j ++ ) {
11
- if ( nums [ i ] + nums [ j ] === target ) {
12
- newArray . push ( i , j ) ;
13
- return newArray ;
14
- }
15
- }
7
+ var temp = [ ] ;
8
+ for ( var i = 0 ; i < nums . length ; i ++ ) {
9
+ if ( temp [ target - nums [ i ] ] !== undefined ) {
10
+ return [ temp [ target - nums [ i ] ] , i ] ;
11
+ }
12
+ if ( ! temp [ nums [ i ] ] ) {
13
+ temp [ nums [ i ] ] = i ;
14
+ }
16
15
}
17
- } ;
16
+ } ;
You can’t perform that action at this time.
0 commit comments