given an array s of n integers. find three integers in s such that the sum is closed to given a number,target . Return the sum of the three integers. You may assume that each input would have exactly one solution.
code example :
/// <summary>
/// given an array s of n integers find three integers in s such that the sum is closed to a given number ,target. Return the num of the three integers. You may assume that each input would have exactly one solution.
/// 给定一组由 n个数组成的数组s 找出三个整数的和最接近于给定的目标整数 你要确保每组输入仅有一个答案
/// given an array of n integers find three integers in s such that the sum is closed to a given number, target . Return the num of the three integers .You may assume that each input would have exactly one solution.
/// </summary>
/// <param name="nums"></param>
/// <param name="target"></param>
/// <returns></returns>
static int threeSumClosed(int[] nums,int target)
{
if (nums == null || nums.Length == 0) return 0;
int min = int.MaxValue,res=0;
for(int i = 0; i < nums.Length; i++)
{
int j = i + 1;
int k = nums.Length - 1;
while (j < k)
{
int sum = nums[i] + nums[j] + nums[k];
int result = Math.Abs(sum - target);
if (min > result)
{
min = result;
res = sum;
}
if (sum < target && j < k)
{
j++;
}
if (sum > target && j < k)
{
k--;
}
}
}
return res;
}