使用哈希产生意外的输出

时间:2019-11-13 00:12:45

标签: algorithm hashtable

大家好,最近我遇到了一个简单的算法问题,令我惊讶的是我遇到了一个困难。如果特定数组包含重复元素,则任务是返回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

1 个答案:

答案 0 :(得分:2)

它并不总是返回False。如果您重复的值不在True的开头(我认为这是数字列表),它将返回nums

请注意,在第一次迭代的第dic[nums[i]] = i行上,您用i来更新字典等于0。这就是为什么以后您无法捕获重复值位于列表的开始。