和最接近0的两个数

Posted wjq2017

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了和最接近0的两个数相关的知识,希望对你有一定的参考价值。

  题目描述:有n个数的数组,找出这个数组中的两个数,使得这两个数的和最接近0。

  步骤:

  1 数组元素从小到大排序。

  2 设置两个游标,一个指向第一个数,另一个指向最后一个数。

  3 把两个游标指向的数相加取绝对值,与当前得到的最小值比较,更小则记录。比较两个游标指向的数的绝对值,移动绝对值较大者对应的游标(如果是左侧游标,则向右移动;否则右侧游标向左移动)。重复当前步骤,直到和是0或者两个游标相遇。

  举例:

原始序列:

-2 3 4 -7 9 5

排序后:

-7 -2 3 4 5 9

寻找过程:

res = MAX_INF;

-7 -2 3 4 5 9
|           |         res = 2

-7 -2 3 4 5 9
|         |           res = 2

-7 -2 3 4 5 9
    |     |           res = 2

-7 -2 3 4 5 9
    |   |             res = 2

-7 -2 3 4 5 9
    | |               res = 1

-7 -2 3 4 5 9
    |                 res = 1

 

  参考资料

  有N个数的数组,找出这个数组中的两个数,使得这两个数的和最接近0

以上是关于和最接近0的两个数的主要内容,如果未能解决你的问题,请参考以下文章

算法:元素个数为2n的数组,把数组分割为元素个数为n的两个数组,并使这两个子数组的和最接近

LeetCode 16. 最接近的三数之和

lintcode_59. 最接近的三数之和

编程题两者接近啥意思

二分查找的 上边界和下边界 以及最接近上边界和最接近下边界的例子

两数之和,三数之和,最接近的三数之和,四数之和