题目
给定一个包括 n 个整数的数组 nums
和一个目标值 target
。找出 nums
中的三个整数,使得它们的和与 target
最接近,返回这三个数的和。假定每组输入只存在唯一答案。
示例
1 | 给定数组 nums = [-1, 2, 1, -4], target = 1; |
方法一(暴力解决)
将给出的数组中的数值分别用三个一组进行相加,把所有结果进行排序,在排序后的值中依次和 target 值进行比较,看谁和 target 最接近即最终返回这个结果值。
CODE
1 | function threeSumClosest(nums, target) { |
总结
首先将原数组进行了从大到小的排序处理(这个排序很重要),排序完之后,当三个数相加还没有目标值 target 大的时候,说明当前值不够,则移动一位进行下一次比较,否则从后向前移动一位。