问题:
如何限制输入数据以实现更好的Big O复杂性?描述处理此有限数据的算法,以查找是否存在重复数据。什么是Big O复杂性? (通过限制数据,我们指的是数据/数组的大小)。
获得了我需要的解决方案来帮助我完成任务。我已经删除了我发布的答案,因为他们没有必要 - 感谢您的帮助:)
答案 0 :(得分:1)
如果您知道整数数组可以采用的最大值,则可以实现更好的大O复杂度。让我们说它为m。 执行此操作的算法是Bucket Sort的方差。复杂度为O(n)。 算法源代码:
public boolean HasDuplicates(int [] arr, int m)
{
boolean bucket[] = new boolean[m];
for (int elem : arr)
{
if (bucket[elem])
{
return true; // a duplicate found
}
bucket[elem] = true;
}
return false;
}
答案 1 :(得分:0)