
var threeSum = function(nums) {
nums.sort((a,b)=>a-b);
let result=[];
for(let i=0;i<nums.length-2;i++){
if(nums[i]>0) return result;
if(i>0&&nums[i]==nums[i-1]) continue;
let left=i+1;
let right=nums.length-1;
while(left<right){
if(nums[i]+nums[left]+nums[right]==0){
result.push([nums[i],nums[left],nums[right]]);
left++;
right--;
}else{
nums[i]+nums[left]+nums[right]>0?right--:left++;
}
while(left>i+1&&nums[left]==nums[left-1]) left++;
while(right<nums.length-1&&nums[right]==nums[right+1]) right--;
}
}
return result;
};