您的位置:首页 > 其它

leetcode+three sum closet+标记一下INT_MIN

2018-01-12 13:59 375 查看
点击打开链接
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string>
#include<cstring>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<queue>
#include<vector>
#include<set>
#include<limits.h>
#include<assert.h>
#include<queue>
#define LL long long
#define inf 0x3f3f3f3f
#define mod 1e9+7
using namespace std;
class Solution {
public:
int threeSumClosest(vector<int>& nums, int target) {
int lengh= nums.size(), min=INT_MAX,i=0;
sort(nums.begin(), nums.end());
for(i=0;i<lengh;i++){
if(i>0&& nums[i]==nums[i-1]) continue;
int begin=i+1, end=lengh-1,sum=0;
while (begin<end) {
sum=nums[i]+nums[begin]+nums[end];
if(abs(sum-target)<abs(min)) min=sum-target;
if(sum==target) return target;
else if(sum<target) begin++;
else end--;
}
}
return min+target;
}
};
int main()
{
Solution temple;
vector<int>Q;
Q.push_back(-1); Q.push_back(2);  Q.push_back(1); Q.push_back(4);
cout<<temple.threeSumClosest(Q, 1)<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: