3 Sum Closest
public class Solution {
public int threeSumClosest(int[] num, int target) {
Arrays.sort(num);
int result = 0, sum = 0, gap = Integer.MAX_VALUE;
for(int i = 0; i < num.length - 2; i++) {
int start = i + 1;
int end = num.length - 1;
while(start < end) {
sum = num[i] + num[start] + num[end];
if(sum == target) {
return target;
} else if(sum < target) {
if(target - sum < gap) {
gap = target - sum;
result = sum;
}
start++;
} else {
if(sum - target < gap) {
gap = sum - target;
result = sum;
}
end--;
}
}
}
return result;
}
}

浙公网安备 33010602011771号