标签: arrays algorithm
所以我有一个数组,我想知道是否有两个相同的元素。
我的第一个想法是O(n^2)算法,我将每个元素与所有其他元素进行比较,但当然它并不是最优的。
O(n^2)
我的第二个想法是对数组进行排序,然后只是比较相邻的元素,但这听起来不是完美的解决方案。
我想我只能梦见O(n),但至少O(n*log(n))有更快的方法吗? (当然,我非常喜欢O(n)解决方案。
O(n)
O(n*log(n))
n*log(n)
答案 0 :(得分:4)
这基本上是 element distinctness problem ,除非您正在利用具有额外空间的散列解决方案,否则无法比O(nlogn)更好地解决。
O(nlogn)