給定乙個包括 n 個整數的陣列nums
和 乙個目標值target
。找出nums
中的三個整數,使得它們的和與target
最接近。返回這三個數的和。假定每組輸入只存在唯一答案。
例如,給定陣列 nums = [-1,2,1,-4], 和 target = 1.仍然是排序再尋找的策略,因為陣列已經是有序序列,所以可以根據當前組合的和與target的大小關係,每次遍歷先確定乙個基數,然後分別從後乙個元素和最後乙個元素開始比較,如果組合的和大於target,那麼想要縮小之間的差距就要從最後乙個元素往前移,如果組合的和小於target,那麼想要縮小之間的差距就要從後乙個元素往後移。與 target 最接近的三個數的和為 2. (-1 + 2 + 1 = 2).
class solution
/*1.對陣列進行排序*/
sort(nums.begin(), nums.end());
/*2.遍歷元素,直到倒數第三個元素*/
for(int k = 0; k < nums.size() - 2; k ++)
}else
/*4.最重要的邏輯,如何更逼近target,當record大於target,j向左移動,反之i向右移動*/
if(plusum > target)
else}}
return record;
}};
Leetcode 最接近的三數之和
給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2...
LeetCode 最接近的三數之和
給定乙個包括 n 個整數的陣列nums和 乙個目標值target。找出nums中的三個整數,使得它們的和與target最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2 1 2 cl...
LeetCode 最接近的三數之和
q 給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。示例 輸入 nums 1,2,1,4 target 1 輸出 2 解釋 與 target 最接近的和是 2 1...