1.給定乙個陣列和目標數,求陣列中三個數之和最接近目標數的和,假設陣列至少有一組和滿足條件。
nums.sort()
l = len(nums)
sum = nums[0] + nums[1] + nums[2]
for i in range(0,l - 2):
if nums[i] == nums[i + 1] : continue
next = i + 1
end = l - 1
while next < end :
threesum = nums[i] + nums[next] + nums[end]
if abs(threesum - target) < sum :
sum = threesum
if threesum > target:
end -= 1
elif threesum < target:
next += 1
else:
return target
return sum
演算法流程是: 先排序陣列, 在用雙指標移動檢索陣列。 最接近目標數的三數之和
給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。本題只需要對上一題求三數之和進行少許的修改即可。思路 仍採用雙指標的思路,只不過需要記錄每次移動過程 現的最近的值...
演算法 最接近的三數之和
題目 給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。示例 輸入 nums 1,2,1,4 target 1 輸出 2 解釋 與 target 最接近的和是 2 ...
最接近的三個數的和
給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2...