大家好,最近我遇到了一个简单的算法问题,令我惊讶的是我遇到了一个困难。如果特定数组包含重复元素,则任务是返回true,否则返回false 实际上,我不明白为什么我的程序会产生意外的输出。我知道解决该问题的许多其他解决方案,但我想了解为什么此解决方案不起作用。然后从输入 [1,2,3,1] 返回 False 实际上,无论输入如何,它总是返回false。它永远不会通过try语句中的条件
dic = {}
for i in range(0,len(nums)):
try:
if dic[nums[i]]:
return True
except:
dic[nums[i]] = i
return False
答案 0 :(得分:2)
它并不总是返回False
。如果您重复的值不在True
的开头(我认为这是数字列表),它将返回nums
。
请注意,在第一次迭代的第dic[nums[i]] = i
行上,您用i
来更新字典等于0。这就是为什么以后您无法捕获重复值位于列表的开始。