知识点
数组知识
解题思路
遍历法
搞懂双指针法
代码实现
class Solution {
public:
int threeSumClosest(vector<int>& nums, int target) {
int i,j,k; // 使用双指针法
int cha;
int min;
int a,b,c;
int ans;;
// 排序
sort(nums.begin(), nums.end());
if(nums.size()<3){
return 0;
}
min=abs(target-(nums[i]+nums[j]+nums[k]));
for(i=0;i<nums.size()-2;i++){
if (j>k){
break;
}
for(j=1;j<nums.size()-1;j++){
for(k=2;k<nums.size();k++){
cha =abs(target-(nums[i]+nums[j]+nums[k]));
if(cha<=min){
a=i;
b=j;
c=k;
}
}
}
}
ans=nums[a]+nums[b]+nums[c];
return ans ;
}
};