来自:58同城2016研发工程师笔试题
题目:
数组 A 由 1000 万个随机正整数 (int) 组成,设计算法,给定整数 n,在 A 中找出 a 和 b,使其符合如下等式:
n = a + b
说明算法思路以及时间复杂度是多少?
将数组排序,杂度n*logn在从头开始,假设第i个位置时arr[i],那就在 i到1000万之间找 n - arr[i] 二分查找的效率是logn,由于当arr[i] > n/2 时就不用找了,所以最终效率2*n*logn
来自:58同城2016研发工程师笔试题
题目:
数组 A 由 1000 万个随机正整数 (int) 组成,设计算法,给定整数 n,在 A 中找出 a 和 b,使其符合如下等式:
n = a + b
说明算法思路以及时间复杂度是多少?
将数组排序,杂度n*logn在从头开始,假设第i个位置时arr[i],那就在 i到1000万之间找 n - arr[i] 二分查找的效率是logn,由于当arr[i] > n/2 时就不用找了,所以最终效率2*n*logn