給定n個整數的乙個陣列s,在s中找出3個數,其加和最接近乙個給定的數target,返回這3個數的和。可以假設每一次輸入都只有乙個解決方案。
例如,給定陣列 s = ,並且target = 1。最接近target的和是 2 。(-1+2+1=2)。
本題又是第二天題「3個數之和」問題的拓展,解法和第二題類似,唯一的區別是在遍歷的過程中,需要增加乙個變數來記錄遍歷過程中的最小值。
#include
#include
#include
using
namespace
std;
int threesumclosest( vector
< int > &num, int target)
if(sum < target) //加和小於target,首指標++;
start++;
}else
//加和大於target,尾指標--;
end--;}}
if(record == target) break;
//去重 de-duplicate
while(i1 && num[i] == num[i+1]) i++;
}cout
}//例如,給定陣列 s = ,並且target = 1。最接近target的和是 2 。(-1+2+1=2)。
void main();
vector
v;for(int i=0; i < sizeof(nums)/4; i++)
v.push_back(nums[i]);
threesumclosest(v,1);
}
三個數之和,最接近目標數的演算法python實現
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 ...
演算法 最接近的三數之和
題目 給定乙個包括 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 輸出 2 解釋 與 target 最接近的和是 2 1 2 1 2 思路 排...