给定一个整数 k和一个排序数组 A(可以由正数和负数组成),从 A 输出 2 个整数,使得a-b=kinO(n) time和O(1) space
O(n logn) 解决方案:
- 遍历数组:
O(n) - 对于 element
a[i],a[i]+k使用二进制搜索在数组中查找:O(log n)
总时间:O(n logn)
O(n) 解决方案:
- 将数组的所有元素存储在哈希表中:
O(n) - 对于元素a[i],检查哈希表中是否有a[i]+k:
O(1)
总时间:O(n)
空间:O(n)
但他想要一个额外空间的O(n)解决方案O(1)。有人知道吗?