面试的时候碰到的一个算法问题

Eviltuzki 发布于 2015/06/11 10:30
阅读 377
收藏 0

面试的时候碰到了一个算法问题,给了一个无序可能有重复的序列,要求找出所有不同位置的两个数字相加等于某一个数字的组合,这个序列很大很大,几万甚至几十万个。

当时只是想到了了双重循环匹配,各位有什么更好的算法么?

加载中
1

快排  将数组升序排好

二分 首先定位  比结果数字大的点  把后边 大的部分切掉

然后确定   结果数字/2   的点     遍历前部分   t =结果-[I]   在后部分里找t是否存在  判断  [i] 和 t 是否多个,,如果多个  数量乘一下  就是对应的结果个数

0
快排+二分查找?
返回顶部
顶部