题解 | #数组中重复的数字#
数组中重复的数字
http://www.nowcoder.com/practice/6fe361ede7e54db1b84adc81d09d8524
代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
@param numbers int整型一维数组
@return int整型
class Solution: def duplicate(self , numbers: List[int]) -> int: # write code here if len(numbers)==0: return -1 jishiben=dict() for fast in range(len(numbers)): if type(numbers[fast]) != int or numbers[fast]<0 or numbers[fast]>10000: return -1 if numbers[fast] in jishiben: return numbers[fast] else: jishiben[numbers[fast]]=''
解题思路:很明确,一次遍历,利用备忘录的方式记录访问过的元素,这里我选择字典的键来替代。 遍历到元素的时候,先判断元素类型、然后是元素值的范围,然后判断元素是否存在字典的键里面, 这里判断的方式可以不同,python3里也可以选择字典里下的__contains__()函数, 如果含有,说明之前遍历到过相同的变量,返回这个键即可;如果不含有,说明没有遍历过,将它加入到字典新的键里面即可。