Skip to content

Commit 6fea854

Browse files
committed
15. 三数之和
1 parent ddf4265 commit 6fea854

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

15. 三数之和.js

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,28 @@
33
* @return {number[][]}
44
*/
55
var threeSum = function (nums) {
6-
nums.sort((a, b) => a - b)
6+
nums.sort((a, b) => a - b) // 排序
77
let res = []
88
for (let i = 0, len = nums.length; i < len; i++) {
9-
if (nums[i] > 0) break
10-
if (nums[i] === nums[i - 1]) continue
11-
let L = i + 1, R = len - 1;
9+
if (nums[i] > 0) break // 若当前数大于0,则三数之和一定大于0,所以结束循环
10+
if (nums[i] === nums[i - 1]) continue // 去重
11+
let L = i + 1,
12+
R = len - 1
1213
while (L < R) {
1314
let sum = nums[i] + nums[L] + nums[R]
1415
if (sum === 0) {
1516
res.push([nums[i], nums[L], nums[R]])
16-
while (nums[L] === nums[++L]) continue
17+
while (nums[L] === nums[++L]) continue // 去重
1718
} else if (sum > 0) {
18-
while (nums[R] === nums[--R]) continue
19-
} else if (sum < 0) {
20-
while (nums[L] === nums[++L]) continue
19+
while (nums[R] === nums[--R]) continue // 去重
20+
} else if (sum <= 0) {
21+
while (nums[L] === nums[++L]) continue // 去重
2122
}
2223
}
2324
}
2425
return res
25-
};
26+
}
2627

2728
var nums = [-1, 2, -2, -1, 1, 0]
28-
threeSum(nums)
29+
let result = threeSum(nums)
30+
console.log(result)

0 commit comments

Comments
 (0)