16 最接近的三數之和

2021-09-20 21:11:31 字數 660 閱讀 4092

給定乙個包括 n 個整數的陣列nums和 乙個目標值target。找出nums中的三個整數,使得它們的和與target最接近。返回這三個數的和。假定每組輸入只存在唯一答案。

例如,給定陣列 nums = [-1,2,1,-4], 和 target = 1.

與 target 最接近的三個數的和為 2. (-1 + 2 + 1 = 2).

如果你理解了演算法15的思想,相信這道題也是可以成功寫出的。

方法一:雙指標法

思路:與三數之和為0的思路類似,時間複雜度o(nlogn),空間複雜度o(logn)

​目標a+b+c最接近target,只要比較新增的sum=a+b+c與之前的min的大小。即abs(sum-target)?abs(min-target)大小

​先對陣列進行排序

對陣列進行for迴圈,a=nums[i]

使用雙指針對a之後的陣列進行遍歷,並與現有的最接近值進行比較。

int threesumclosest(vector& nums, int target) 

else

else

}} }

return min;

}

16 最接近的三數之和

給定乙個包括 n 個整數的陣列nums和 乙個目標值target。找出nums中的三個整數,使得它們的和與target最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2 1 2 思考...

16 最接近的三數之和

給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2...

16 最接近的三數之和

給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2...