Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 0a306e4

Browse files
committed
add js solution to leetcode problem: no.15
1 parent 11b6e20 commit 0a306e4

File tree

3 files changed

+106
-0
lines changed

3 files changed

+106
-0
lines changed

‎solution/0000-0099/0015.3Sum/README.md‎

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,43 @@ class Solution {
128128
}
129129
```
130130

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+
131168
### **...**
132169

133170
```

‎solution/0000-0099/0015.3Sum/README_EN.md‎

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,43 @@ class Solution {
105105
}
106106
```
107107

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+
108145
### **...**
109146

110147
```
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
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+
};

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /