public class Solution {
public int threeSumClosest(int[] num, int target) {
if (num.length==3) return num[0]+num[1]+num[2];
int res = num[0]+num[1]+num[2];
int min = Integer.MAX_VALUE;
int i, j, p;
Arrays.sort(num);
for (i=0; i<num.length-2; i++) {
j = i+1;
p = num.length-1;
while (j<p) {
int temp = num[i]+num[j]+num[p];
if (temp==target) return target;
else if (Math.abs(temp-target)<min) {
min = Math.abs(temp-target);
res = temp;
}
if (temp<target) j++;
else p--;
}
}
return res;
}
}
没有评论:
发表评论