func abs(num int) int { if num < 0 { return -num } return num}func threeSumClosest(nums []int, target int) int { result := nums[0] + nums[1] + nums[2] last_offset := abs(target - result) sort.Ints(nums) for i := 0; i < (len(nums) - 2); i++ { l := i + 1 h := len(nums) - 1 sum := 0 for l < h { sum = nums[i] + nums[l] + nums[h] offset := abs(sum - target) if offset < last_offset { result = sum last_offset = offset } if sum < target { l++ } else if sum > target { h-- } else { break } } } return result}func main() { //fmt.Println(threeSumClosest([]int{-1, 2, 1, -4}, 1)) fmt.Println(threeSumClosest([]int{1, 2, 5, 10, 11}, 12))}