/** * * @param num int整型一维数组 * @return int整型二维数组 */ function threeSum(num) { // write code here num = num.sort((a, b) => a - b); // 整体升序 let len = num.length; let arr = []; if (num.length < 3) { return []; } for (let i = 0; i < len-2; i++) { if(i!=0&&num[i]==num[i-1]){//防止重复 continue; } let j = i + 1; let z = len - 1; let total ; while (j < z) { total = num[i] + num[j] + num[z]; if (total === 0) { arr.push([num[i], num[j], num[z]]); while (j < z - 1 && num[j] === num[j + 1]) { //去重 j++; } while (z - 1 > j && num[z] === num[z - 1]) { //去重 z--; } j++; z-- }else if(total>0){ z-- }else{ j++ } } } return arr; } module.exports = { threeSum: threeSum, };