Given an array S of n integers,find three integers in S such that the sum is closest to a given number,target. Return the sum of the three integers. You may assume that each input would have exactly one solution.
For example,given array S = {-1 2 1 -4},and target = 1.
The sum that is closest to the target is 2. (-1 + 2 + 1 = 2).
func threeSumClosest(nums []int,target int) int { if len(nums) < 3 { return -1 } sort.Ints(nums) result := nums[0] + nums[1] + nums[2] for i := 0; i < len(nums)-2; i++ { j := i + 1 k := len(nums) - 1 sum := 0 for j < k { sum = nums[i] + nums[j] + nums[k] if sum == target { return sum } if sum > target { k-- } else { j++ } result = getCloser(sum,result,target) } } return result}func getCloser(num1,num2,target int) int { if math.Abs(float64(num1-target)) > math.Abs(float64(num2-target)) { return num2 } else { return num1 }}总结
以上是内存溢出为你收集整理的16. 3Sum Closest全部内容,希望文章能够帮你解决16. 3Sum Closest所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)