給定乙個包括 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...