/**
* @param {number[]} nums
* @return {number[][]}
*/
var threeSum = function(nums) {
//先创建一个空的盒子,把后面的结果放进去
let res = []
//给数组排个序
let sorted_nums = nums.sort()
//遍历循环,设三个数的位置分别为i,j,k
//确认第一个数i
for(i = 0; i < sorted_nums.length - 1; i++){
//第一个数字确定之后采用双指针的方法
let j = i + 1
let k = sorted_nums.length - 1
sum = sorted_nums[i] + sorted_nums[j] + sorted_nums[k]
while(j < k){
if(sum < 0){
j++
} else if (sum > 0){
k--
} else {
res.push([nums[i], nums[j++], nums[k--]])
//跳过重复的
while(sorted_nums[j] === sorted_nums[j-1]){
j++
}
while(nums[k] === nums[k+1]){
k--
}
}
}
}
return res
};