16. 最接近的三数之和

重点是先排序,然后创建左右指针地址根据tagart 接近情况来左右移动
package mainimport ("fmt""math""sort")func threeSumClosest(nums []int, target int) int {res :=nums[0]+nums[1]+nums[2]sort.Ints(nums)for i:=0;i<len(nums)-2;i++{l :=i+1r:=len(nums)-1for l<r{tmp:=nums[i]+nums[l]+nums[r]if tmp>target {r--}else if tmp<target {l++}else {return target}if int(math.Abs(float64(tmp-target)))<int(math.Abs(float64(res-target))) {res = tmp}}}return res}func main() {fmt.Println(threeSumClosest([]int{-1,2,1,-4},1))fmt.Println(threeSumClosest([]int{0,0,0},1))}

