✊ 作者: 七弦 ✊不积跬步,无以至千里;不积小流,无以成江海。 ✊ 时间:2021.07.22 ✊ 题目来源: 力扣 - 15
1. 题目说明
2.1 双指针
var nums = [-1, 0, 1, 2, -1, -4];const threeSum = function (nums) {const res = [];// nums进行排序nums = nums.sort((a, b) => a - b);// 循环numsvar i,maxLength = nums.length;for (i = 0; i < maxLength; i++) {// 得到目标值var target = -nums[i],left = i + 1,right = maxLength - 1,sum = nums[left] + nums[right]; // 得到两数之和if (i > 0 && nums[i] === nums[i - 1]) continue// 双指针进行跳转while (left < right) {if (sum === target) {res.push([nums[i], nums[left], nums[right]]);while(left < right && nums[left] === nums[left + 1]);while(left < right && nums[right] === nums[right - 1]);left++right--} else if (sum < target) {left++;} else {right--;}}}return res;};const result = threeSum(nums);console.log('🚀 ~ file: 2-threeSum.js ~ line 8 ~ result', result);
