https://leetcode-cn.com/problems/3sum-closest/ 数组、双指针

双指针

  1. function threeSumClosest(nums: number[], target: number): number {
  2. nums.sort((a, b) => a - b)
  3. let min: number = Infinity;
  4. let res: number = 0;
  5. let i = 0;
  6. while(i < nums.length - 2) {
  7. let l = i + 1;
  8. let r = nums.length - 1
  9. while(l < r) {
  10. let add = nums[i] + nums[l] + nums[r]
  11. let diff = Math.abs(target - add)
  12. if (diff < min) {
  13. min = diff
  14. res = add
  15. }
  16. add < target ? l++ : r--
  17. }
  18. i++
  19. }
  20. return res
  21. };