题干
找出数组中重复的数字
在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
示例
输入:
[2, 3, 1, 0, 2, 5, 3]
输出:2 或 3
解题思路
看到题目之后作者首先想到的就是使用字典可以存储数值出现的次数、因此先定义一个空字典,key值存数组里的数字,value值存该数字出现的次数。然后循环数组,遇到一个数就判断是否已经存在字典里,如果已存在就返回,不存在就存入字典中并将value赋为1
其他思路:同样的,可以使用一个空列表或者元组来存储数字,如不存在则加入列表中,已存在则返回
代码
代码:
class Solution(object):
def findRepeatNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
dict = {}
for i in nums:
if i in dict:
return i
else:
dict[i] = 1
return -1
运行效果