public class Solution { public int threeSumClosest(int[] nums, int target) { Arrays.sort(nums); int length = nums.length; int rr = Integer.MAX_VALUE; int result = 0; for (int i = 0; i < length; i++) { int x = nums[i]; int target2 = target - x; int start = i + 1; int end = length - 1; while (start < end) { int sum = nums[start] + nums[end]; int z = sum - target2; int d = Math.abs(z); if (sum < target2) { start++; } else if (sum == target2) { return target; } else { end--; } if (rr > d) { rr = d; result = z; } } } return result + target; }}