剑指 Offer II 007. 数组中和为 0 的三个数

剑指 Offer II 007. 数组中和为 0 的三个数_第1张图片

var threeSum = function(nums) {
let len =nums.length;
if(len<3) return [];
const res=[];
nums.sort((a,b) => a - b);
for(let i =0;i {
if(nums[i]>0) break;
if(i>0 && nums[i]==nums[i-1]) continue;
let left = i+1;
let right = len-1;
while(left {
if(nums[i]+nums[left]+nums[right]>0) {right–;continue;}
if(nums[i]+nums[left]+nums[right]<0) {left++;continue;}
res.push([nums[i],nums[left],nums[right]]);
while(left while(left }
}
return res;
};
剑指 Offer II 007. 数组中和为 0 的三个数_第2张图片

  • 注意事项
  • 三数之和是遍历最小的数字,然后移动left,right
  • 注意去重
  • sort排序中a-b 是从小到大
  • res.push[]

你可能感兴趣的:(js刷题,leetcode,排序算法,算法)