问题:给出一个数组nums,及目标数target,要求找出数组中三个数之和与target最接近的数
思路:第一种方法是使用三种循环,依次遍历,看三个数之和与目标数最拉近,同时更新。该算法时间复杂度为O(n^3)
第二种方法是使用双指针,先将数组从小到大排序。分别用a,b,c表示选择的三个数。如果a+b+c>target,如果选择b右边的,三个数之和必定大于target,所以需要选择c左边的数。如果a+b+c<target,如果选择c左边的,其和必定小于target,所以需要选择b右边的数。
具体代码参考:
https://github.com/wuli2496/OJ/tree/master/LeetCode/16%203Sum%20Closest