var threeSum = function (nums) {
var arr = [];
nums.sort(function (a, b) {
return a - b;
})
for (var i = 0; i < nums.length - 2; i++) {
if (nums[i] !== nums[i - 1] || i === 0) {
var start = i + 1;
var end = nums.length - 1;
while (start < end) {
if (nums[i] + nums[start] + nums[end] === 0) {
arr.push([nums[i], nums[start], nums[end]])
start++;
end--;
// 去重
while (start < end && nums[start] === nums[start - 1]) {
start++;
}
while (start < end && nums[end] === nums[end + 1]) {
end--;
}
} else if (nums[i] + nums[start] + nums[end] > 0) {
end--;
} else {
start++;
}
}
}
}
return arr;
}
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。
于 2022-08-04 19:50:37 首次发布