15. 三数之和
var threeSum = function(nums) {
//对数组进行排序
nums.sort(function(a,b){
return a-b;
})
const result=[];
var start=0;
var end=nums.length-1;
//这里减二是因为要三个数值之和
for(let i=0;i<nums.length-2;i++)
{
//判断i是否重复
if(i===0||nums[i]!==nums[i-1])
{
start=i+1;
end=nums.length-1;
while(start<end)
{
//如果为0
if(nums[i]+nums[start]+nums[end]===0)
{
//放入集合
result.push([nums[i],nums[start],nums[end]])
end--;
start++;
//start去重
while(start<end&&nums[end]===nums[end+1])
{
end--;
}
//end去重
while(start<end&&nums[start]===nums[start-1])
{
start++;
}
}
//如果大于0则end--
else if(nums[i]+nums[start]+nums[end]>0)
{
end--;
}
//如果和小于0则start++
else{
start++;
}
}
}
}
return result;
};
result.push([nums[i],nums[start],nums[end]])
注意外面要套方框,这样集合里才放数组
博客围绕三数之和展开,提到代码中 result.push([nums[i],nums[start],nums[end]]) 这一操作,强调外面要套方框,以确保集合里存放的是数组。
689

被折叠的 条评论
为什么被折叠?



