給出數(shù)組nums戏蔑,判斷 nums是否存在不相等的三個元素 a, b, c到涂,使得其結(jié)果為0,返回結(jié)果數(shù)組支示。
- Runtime: 136 ms, faster than 97.33%
- Memory Usage: 48.7 MB, less than 87.40%
/**
* @param {number[]} nums
* @return {number[][]}
*/
var threeSum = function(nums) {
var n = nums.length
var res = []
if (n < 3) return res
nums.sort((a, b) => {
return a - b
})
for (var i = 0; i < n - 2; i++) {
if(i > nums[0] && nums[i] === nums[i - 1] ) continue
var j = i + 1
var k = n - 1
while (j < k) {
if (nums[i] + nums[j] + nums[k] < 0){
j++
while(nums[j] === nums[j - 1] && j < k) {
j++
}
} else if(nums[i] + nums[j] + nums[k] > 0){
k --
while(nums[k] === nums[k + 1] && j < k) {
k--
}
} else{
res.push([nums[i], nums[j], nums[k]])
j++
k--
while(nums[j] === nums[j - 1]) {
j++
}
}
}
}
return res
};