今天我偶然看到了这个问题,尝试找到一个比O(N)更好的解决方案,但却没有想出来。
在SO上搜索了一下,但没有找到这个问题。
有没有比O(n)更好的解决方案,或者说这是一个不能比O(n)更好地解决的问题?
我的第一个想法是二分查找,但是为了使用它,需要对其进行排序,这又是>n的复杂度。我还考虑过只对可能包含搜索元素的数组的一半应用快速排序,但是我们最初要进行n次比较,之后才将另一半丢弃。我是正确理解问题,还是我的解决方向有误?
我正在尝试在c++中找到一个解决方案,而不是使用javascript的IndexOf()、C#的Array.find()或LINQ。
O(n)
更好。 - Mysticial