Guest User

Untitled

a guest
Jan 20th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. var threeSumClosest = function(nums, target) {
  2. var len = nums.length, sum=0;
  3. if(len===0) return 0;
  4. if(len<=3) {
  5. for(var i=0; i<len; i++){
  6. sum+=nums[i];
  7. }
  8. return sum;
  9. }
  10. nums.sort(function(a,b){
  11. return a-b;
  12. });
  13.  
  14. console.log(nums);
  15.  
  16. var closest = nums[0]+nums[1]+nums[2];
  17. for(var i=0; i<len; i++){
  18. for(var j=i+1, k=len-1; j<len-1, j<k; ){
  19. console.log(i + ', ' + j + ', ' + k + ': ' + nums[i]+ ', ' + nums[j] + ', ' + nums[k]);
  20. console.log('target:' + target + ', sum = ' + sum + ', difference: ' + (sum-target));
  21. var sum = nums[i] + nums[j] + nums[k];
  22. if(sum === target){
  23. return sum;
  24. } else if(sum<target){
  25. if((closest<sum && sum<target) ||
  26. Math.abs(target-sum)<Math.abs(target-closest)){
  27. closest = sum;
  28. }
  29. j++;
  30. } else if(sum>target){
  31. if(closest>sum && sum>target ||
  32. Math.abs(target-sum) < Math.abs(target-closest)) {
  33. closest = sum;
  34. }
  35. k--; //to reduce sum decrease tail
  36. }
  37.  
  38. }
  39. }
  40. return closest;
  41. };
Add Comment
Please, Sign In to add comment