最接近的三數之和
題目鏈接最接近的三數之和
思路
題目和三數之和很相似,不同的是找三數之和最小的數,不一定是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,因爲找到的最小值是唯一的
- 否則根據大小進行左右移動指針