16. 3Sum Closest

16. 3Sum Closest,第1张

概述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

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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1278425.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存