#!/bin/python """ Find a duplicate We have a list of integers, where: The integers are in the range 1..n1..n The list has a length of n+1n+1 It follows that our list has at least one integer which appears at least twice. But it may have several duplicates, and each duplicate may appear more than twice. Write a function which finds an integer that appears more than once in our list. (If there are multiple duplicates, you only need to find one of them.) """ def find_dups(num_list): num_dict = {} for n in num_list: if n in num_dict.keys(): num_dict[n] += 1 else: num_dict[n] = 1 for k,v in num_dict.items(): if v > 1: print "dup is {}".format(k) def find_dups_set(num_list): num_set = set() for n in num_list: if n in num_set: print n else: num_set.add(n) num_list = [6,1,3,7,6,4,5,2,8,5,6,6,7] find_dups(num_list) find_dups_set(num_list)