问题阵列中的所有差异:给定一个有序数组A找到A.元素的所有可能差异查找为O(n)
我的解决办法:
for (int i=0; i<n-1; ++i) {
for (int j=i+1; j<n; ++j) {
System.out.println(Math.abs(ai-aj));
}
}
当然,这是为O(n^2),但我根本不算数。我在网上看,我发现这个:http://www.careercup.com/question?id=9111881。它说你不能做得更好,但在面试时我被告知你可以做O(n)。哪个是对的?
我会小心的,在这家公司采取了工作......他们可能会期望你解决NP完全问题P时间... ;-) –
我的猜测是,你或面试官忽视或无意中听到一个额外的条件。 –
将n定义为差异的数量(输出的大小而不是输入的大小)。嘿presto - 现在是O(n)。 – Steve314