在不到 O(n) 的时间内找到(排序的)数组中的重复元素?

Finding the duplicate element in a (sorted) Array in less than O(n) time?

我想知道是否可以在 O(log n) 中对 JavaScript 数组执行二进制搜索以查找单个重复元素。

// Example
  // Input: var arr = [1, 3, 4, 4, 6, 9, 11, 12, 14]
  // Output: 4

我知道如何在线性时间内解决这个问题,但我一直在尝试用 O(log n) 编写一个解决方案,除非我不确定如何继续将数组块减少到在每次迭代中搜索。有什么建议吗?

只有当您知道您要查找的元素时(或者,更准确地说,如果您在选择轴心时能够分辨出元素在哪一半),二分查找才有效点)。

您的问题中没有任何内容似乎表明您具备这方面的知识,因此,据此,O(n) 是您目前所能做到的最好的。

如果有一些额外的信息,它可能是可能的,比如一个范围内的所有数字都被表示除了一个,或者重复的在特定范围内。

但是,根据目前的信息,情况并非如此。