js怎样求数组里面三数之和
时间: 2024-04-12 22:29:17 浏览: 9
要在 JavaScript 中求解数组中三个数的和为特定值,可以使用双指针法来解决这个问题。以下是实现这个算法的示例代码:
```javascript
function threeSum(nums, target) {
const result = [];
nums.sort((a, b) => a - b); // 先对数组进行排序
for (let i = 0; i < nums.length - 2; i++) {
if (i > 0 && nums[i] === nums[i - 1]) {
continue; // 跳过重复元素,避免重复计算
}
let left = i + 1;
let right = nums.length - 1;
while (left < right) {
const sum = nums[i] + nums[left] + nums[right];
if (sum < target) {
left++;
} else if (sum > target) {
right--;
} else {
result.push([nums[i], nums[left], nums[right]]);
while (left < right && nums[left] === nums[left + 1]) {
left++; // 跳过重复元素
}
while (left < right && nums[right] === nums[right - 1]) {
right--; // 跳过重复元素
}
left++;
right--;
}
}
}
return result;
}
const nums = [-1, 0, 1, 2, -1, -4];
const target = 0;
const result = threeSum(nums, target);
console.log(result);
```
在这个示例中,`threeSum` 函数接受一个整数数组 `nums` 和目标值 `target