【发布时间】:2014-08-05 15:22:27
【问题描述】:
一个数组有1002个数字,两个数字相同。您如何有效地在该数组中找到相同的数字,或者是否有有效的算法?
这是我的算法:
for i in range(0, 1002):
for j in range(i+1, 1002):
if(a[i]==a[j]):
return a[i]
【问题讨论】:
-
数字的取值范围是多少?使用散列!它会在 O(n) 时间内工作!
-
这取决于数组元素的允许范围。
-
数字范围未指定为1到1002之间。
-
仍然会有一些范围!那是什么范围?您对内存高效算法的要求是什么?还是高效的算法?
-
如果没有定义“效率”,这是一个没有真正答案的模棱两可的问题。如果我作为面试官问这个问题,我会在我关心答案之前让候选人问我的意思。
标签: algorithm