法一:使用collections.Counter函数计算频率,遍历字典,将所有频率大于1的键都放入一个列表中,随机输出列表。
import collections
import random
class Solution:
def findRepeatNumber(self, nums: List[int]) -> int:
s=[]
fre = collections.Counter(nums)
for i in dict(fre).keys():
if fre[i] > 1:
s.append(i)
if s == '':
return NULL
else:
i = random.choice(s)
return i
改进:因为是随机输出一个重复的键值。所以可以在统计完频率后,遍历字典,第一个键值大于1的即可输出。
import collections
import random
class Solution:
def findRepeatNumber(self, nums: List[int]) -> int:
s=[]
fre = collections.Counter(nums)
for i in dict(fre).keys():
if fre[i] > 1:
return i
return ' '
用字典统计频率
nums=[2, 3, 1, 0, 2, 5, 3]
dic={}
for i in nums:
if i in dic:
dic[i]+=1
else:
dic[i]=1