/** * * @param num int整型一维数组 * @return int整型二维数组 */ function threeSum(num) { //暴力双指针 num.sort((a, b) => { return a - b; }); let res = []; let i = 0; while(i < num.length) { let a = num[i]; let flag1 = i + 1, flag2 = num.length - 1; while (flag1 < flag2) { let b = num[flag1], c = num[flag2]; let sum = a + b + c; if (sum === 0) { res.push([a, b, c]); while (b == num[flag1]) { flag1++; } while (c == num[flag2]) { flag2--; } } else if (sum < 0) { while (b == num[flag1]) { flag1++; } } else { while (c == num[flag2]) { flag2--; } } } while(a == num[i]){ i++; } } return res; } module.exports = { threeSum: threeSum, };