最接近的三数之和
题目链接最接近的三数之和
思路
题目和三数之和很相似,不同的是找三数之和最小的数,不一定是0,但是找到0了可以直接返回,还是可以使用双指针,在数组排序过后,利用左右指针来计算三数之和,和设定的ans值做比较来决定左移还是右移。
- 利用sort对数组进行排序
- 在for循环中用i遍历数组
- 左指针=i+1,右指针为size(nums)-1;
- 定义sum=nums[i]+nums[L]+nums[R]
- 定义当前最小的三数之和值ans
- 当sum<ans时更新ans(这里要考虑到绝对值)
- 如果ans=target,直接返回ans,因为找到的最小值是唯一的
- 否则根据大小进行左右移动指针