这是一个赋值,并且是伪造的代码。
我需要找到数组中有多少个整数是唯一的,没有别的,但它必须在O(n)中,最好没有散列。
谢谢!
答案 0 :(得分:1)
这个伪代码怎么样?
array randomNumbers;
array unique;
int uniqueCount = 0;
for (i in randomNumbers) {
unique[i] += 1;
uniqueCount++; //count all here
// and remove duplicities here
if (unique[i] > 1) {
uniqueCount--;
}
}
return uniqueCount;
并且前提是,未声明的唯一[i]是0
答案 1 :(得分:0)
只需遍历数组中的每个元素并跟踪您看到的元素,当您看到重复的元素时,就会报告它。
另外,根据你如何跟踪元素,它可能是也可能不是O(n),但我会把那部分留给你,你至少要学习一些东西。