給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。
分析:1.跟三數之和的解法差不多,唯一不同點就是在找最優解的過程中,i和j移動過程中重複的解決辦法,在三數之和中,逼近最優解的過程中,i和j,是不用排除重複的,因為它在符合條件的體內就已進做了這份工作,而在此案例中,為了減少無謂的更新,所以就在尋找最優解的過程中排除重複;
2.注意,在i和j排除重複的過程中,注意不要i++再賦值給臨時變數,例如
2345,當i指向2時,i++再賦值給臨時變數i0,臨時變數就指向3,臨時變數再採用
while
(i0 < j && nums[i0]
== nums[i]
) i0++
; i = i0;
最終i就指向了4跳過了三,結果就出錯。
**奉上:
class
solution
if(math.
abs(target-sum)
< math.
abs(target-best)
) best = sum;
if(sum < target)
else}}
return best;
}}
最接近的三數之和
給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2...
最接近的三數之和
給定乙個包括 n 個整數的陣列nums和 乙個目標值target。找出nums中的三個整數,使得它們的和與target最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2 1 2 pu...
最接近的三數之和
題目 有點類似三數之和的進化版 給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target ...