【发布时间】:2014-03-10 07:16:05
【问题描述】:
我最近接受了一家著名的硅谷公司的采访。我被要求以 O(n) 的时间复杂度为以下问题编写代码。
问题:
编写一个给定整数数组的函数。如果它应该返回 true 任何值在数组中至少出现两次,如果它应该返回 false 每个元素都是不同的。
问题的关键是使用哈希映射。我用python写了以下代码:
def containsDuplicate(arr):
hashi={}
for i in arr:
try:
hashi[i]+=1
return 1
except KeyError:
hashi[i]=1
return 0
整体面试很顺利,我能够找出所有问题的最佳解决方案(有效的解决方案)。 后来我收到了公司的邮件,说我不是这个职位的最佳人选。当被问及拒绝的原因时,我被告知要改进我的编码风格。
当 HR 说我需要改进我的编码风格时,她是什么意思?编写上述问题的解决方案的最佳方法是什么?
编辑:
再次阅读代码后,我相信甚至没有必要这样做 hashi[i]+=1 。只需return 1 就足够了,但我不认为他们仅仅因为我的编码中的这个小错误而拒绝了我。
【问题讨论】:
标签: python arrays python-2.7 coding-style hashmap