給定乙個包括 n 個整數的陣列nums
和 乙個目標值target
。找出nums
中的三個整數,使得它們的和與target
最接近。返回這三個數的和。假定每組輸入只存在唯一答案。
例如,給定陣列 nums = [-1,2,1,-4], 和 target = 1.顯然,時間複雜度為o(n^3)的演算法就沒必要考慮了,筆試或面試的時候如果寫了o(n^3)的應該也過不了吧。與 target 最接近的三個數的和為 2. (-1 + 2 + 1 = 2).
可以先把陣列排序,先取第乙個數為nums[i],然後在剩下的數里選兩個,由於陣列已經排好序,可以用雙指標法,l=i+1;r=nums.length-1;然後判斷nums[i]+nums[l]+nums[r]與target的差值,如果比原來的小則更新。
如果nums[i]+nums[l]+nums[r]target,則r--;
class solution
arrays.sort(nums);
int res=nums[0]+nums[1]+nums[2];
for(int i=0;itarget)
else}}
return res;
}}
LeetCode 16 最接近的三數之和
題目傳送門 給定乙個包括 n 個整數的陣列nums和 乙個目標值target。找出nums中的三個整數,使得它們的和與target最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2 ...
Leetcode 16 最接近的三數之和
給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2...
leetcode16 最接近的三數之和
leetcode16 最接近的三數之和原題鏈結 題意簡述給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target...