/*** @param {number[]} nums* @return {number[][]}*/ 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;//因为求三数之和等于0,如果第一个数已经大于0,后面肯定无解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; };