您的位置:首页 > 其它

leetcode 3Sum Closest

2015-04-14 21:58 375 查看
代码:

#include<iostream>
#include<algorithm>
#include<vector>

using namespace std;

int threeSumClosest(vector<int> &num, int target) {
sort(num.begin(),num.end());
int L = num.size();
int min = INT_MAX;
int beauty;
for (int i = 0; i < L-2; i++)
{
int l = i + 1;
int r = L - 1;
int sum = num[l]+num[r]+num[i];
while (l < r)
{
sum = num[l] + num[r] +num[i];
if (abs(target - sum) < min)
{
min = abs(target - sum);
beauty = sum;
}
if (sum < target)
{
l++;
}
else if (sum > target)
{
r--;
}
else
{
return sum;
}
}
}
return beauty;
}

int main()
{
vector<int> S = { 87, 6, -100, -19, 10, -8, -58, 56, 14, -1, -42, -45, -17, 10, 20, -4, 13, -17, 0, 11, -44, 65, 74, -48, 30, -91, 13, -53, 76, -69, -19, -69, 16, 78, -56, 27, 41, 67, -79, -2, 30, -13, -60, 39, 95, 64, -12, 45, -52, 45, -44, 73, 97, 100, -19, -16, -26, 58, -61, 53, 70, 1, -83, 11, -35, -7, 61, 30, 17, 98, 29, 52, 75, -73, -73, -23, -75, 91, 3, -57, 91, 50, 42, 74, -7, 62, 17, -91, 55, 94, -21, -36, 73, 19, -61, -82, 73, 1, -10, -40, 11, 54, -81, 20, 40, -29, 96, 89, 57, 10, -16, -34, -56, 69, 76, 49, 76, 82, 80, 58, -47, 12, 17, 77, -75, -24, 11, -45, 60, 65, 55, -89, 49, -19, 4 };
cout << threeSumClosest(S,-275) << endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: