Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var threeSum = function(nums) {
- var len = nums.length;
- if(len < 3) return [];
- nums.sort(function(a,b){
- return a-b;
- })
- if(nums[0] > 0 || nums[0] + nums[1] + nums[2] > 0) return [];
- if(len === 3) {
- if(nums[0] + nums[1] + nums[2] === 0) return [nums];
- else return [];
- }
- //console.log(nums);
- var result = [];
- var checker = '';
- for(var i=0; i<len; i++){
- var sum = -nums[i];
- for(var j=i+1, k = len - 1; j<k;){
- //console.log(i + ', ' + j + ', ' + k + ': ' + nums[i] + ', ' + nums[j] + ', ' + nums[k]);
- var temp = nums[j] + nums[k];
- if(temp < sum){
- j++;
- } else if(temp > sum){
- k--;
- } else {
- var triplet = [nums[i], nums[j], nums[k]];
- result.push(triplet);
- //skip j term if it's a duplicate
- while(nums[j] === nums[j+1] && j<len) j++;
- //skip k term if it's a duplicate
- while(nums[k] === nums[k-1] && k>0) k--;
- j++;
- k--;
- }
- }
- //skip i term if it's a duplicate
- while(nums[i] === nums[i+1] && i<len) i++;
- }
- return result;
- };
Add Comment
Please, Sign In to add comment