File tree 3 files changed +106
-0
lines changed
solution/0000-0099/0015.3Sum
3 files changed +106
-0
lines changed Original file line number Diff line number Diff line change @@ -128,6 +128,43 @@ class Solution {
128
128
}
129
129
```
130
130
131
+ ### ** JavaScript**
132
+
133
+ ``` js
134
+ /**
135
+ * @param {number[]} nums
136
+ * @return {number[][]}
137
+ */
138
+ var threeSum = function (nums ) {
139
+ let len = nums .length ;
140
+ if (len < 3 ) return [];
141
+ let res = [];
142
+ nums .sort ((a , b ) => a - b);
143
+ for (let i = 0 ; i < len - 2 ; i++ ) {
144
+ if (nums[i] > 0 ) break ;
145
+ if (i > 0 && nums[i] === nums[i - 1 ]) continue ;
146
+ let left = i + 1 , right = len - 1 ;
147
+ while (left < right) {
148
+ if (nums[i] + nums[left] + nums[right] === 0 ) {
149
+ res .push ([nums[i], nums[left], nums[right]]);
150
+ while (nums[left] == nums[left + 1 ]) left++ ;
151
+ left++ ;
152
+ while (nums[right] == nums[right + 1 ]) right-- ;
153
+ right-- ;
154
+ continue ;
155
+ } else if (nums[i] + nums[left] + nums[right] > 0 ) {
156
+ right-- ;
157
+ continue ;
158
+ } else {
159
+ left++ ;
160
+ continue ;
161
+ }
162
+ }
163
+ }
164
+ return res;
165
+ };
166
+ ```
167
+
131
168
### ** ...**
132
169
133
170
```
Original file line number Diff line number Diff line change @@ -105,6 +105,43 @@ class Solution {
105
105
}
106
106
```
107
107
108
+ ### ** JavaScript**
109
+
110
+ ``` js
111
+ /**
112
+ * @param {number[]} nums
113
+ * @return {number[][]}
114
+ */
115
+ var threeSum = function (nums ) {
116
+ let len = nums .length ;
117
+ if (len < 3 ) return [];
118
+ let res = [];
119
+ nums .sort ((a , b ) => a - b);
120
+ for (let i = 0 ; i < len - 2 ; i++ ) {
121
+ if (nums[i] > 0 ) break ;
122
+ if (i > 0 && nums[i] === nums[i - 1 ]) continue ;
123
+ let left = i + 1 , right = len - 1 ;
124
+ while (left < right) {
125
+ if (nums[i] + nums[left] + nums[right] === 0 ) {
126
+ res .push ([nums[i], nums[left], nums[right]]);
127
+ while (nums[left] == nums[left + 1 ]) left++ ;
128
+ left++ ;
129
+ while (nums[right] == nums[right + 1 ]) right-- ;
130
+ right-- ;
131
+ continue ;
132
+ } else if (nums[i] + nums[left] + nums[right] > 0 ) {
133
+ right-- ;
134
+ continue ;
135
+ } else {
136
+ left++ ;
137
+ continue ;
138
+ }
139
+ }
140
+ }
141
+ return res;
142
+ };
143
+ ```
144
+
108
145
### ** ...**
109
146
110
147
```
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number[] } nums
3
+ * @return {number[][] }
4
+ */
5
+ var threeSum = function ( nums ) {
6
+ let len = nums . length ;
7
+ if ( len < 3 ) return [ ] ;
8
+ let res = [ ] ;
9
+ nums . sort ( ( a , b ) => a - b ) ;
10
+ for ( let i = 0 ; i < len - 2 ; i ++ ) {
11
+ if ( nums [ i ] > 0 ) break ;
12
+ if ( i > 0 && nums [ i ] === nums [ i - 1 ] ) continue ;
13
+ let left = i + 1 , right = len - 1 ;
14
+ while ( left < right ) {
15
+ if ( nums [ i ] + nums [ left ] + nums [ right ] === 0 ) {
16
+ res . push ( [ nums [ i ] , nums [ left ] , nums [ right ] ] ) ;
17
+ while ( nums [ left ] == nums [ left + 1 ] ) left ++ ;
18
+ left ++ ;
19
+ while ( nums [ right ] == nums [ right + 1 ] ) right -- ;
20
+ right -- ;
21
+ continue ;
22
+ } else if ( nums [ i ] + nums [ left ] + nums [ right ] > 0 ) {
23
+ right -- ;
24
+ continue ;
25
+ } else {
26
+ left ++ ;
27
+ continue ;
28
+ }
29
+ }
30
+ }
31
+ return res ;
32
+ } ;
You can’t perform that action at this time.
0 commit comments