package com.leetcode;
import java.util.Arrays;
public class ThreeSumClosest {
//https://leetcode.com/problems/3sum-closest/
//O(N*N) , alternative is fix p1 and p2 pointers and do binSearch for p3 closest to sum that worst case is O(N*N logN)
class Solution {
public int threeSumClosest(int[] nums, int target) {
int n = nums.length;
Arrays.sort(nums);
int minDiff = Integer.MAX_VALUE;
int result = 0;
for(int p1 = 0 ; p1 < n-2 ; p1++){
int rem = target - nums[p1];//remaining
int l = p1+1;
int r = n-1;
while(l Math.abs(diff)){
minDiff = Math.abs(diff);
result = nums[p1] + nums[l] + nums[r];
}
if(diff == 0) return target;
if(diff > 0){
l++;
}
if(diff < 0){
r--;
}
}
}
return result;
}
}
}