题目:数组a表示n个村民所属的村庄,求人最少的村庄。如果有多个人最少的村庄,返回编号最大的。
例: a=[1,2] 返回2 a= [1,2,3,3,2,2]返回2
思路:字典
① 使用字典统计每个村庄对应的人数
② 获得最少村庄人数
③ 遍历得最少村庄人数对应的最大编号。
代码:
def find(self, a):
dic = {}
for i in range(len(a)):
if a[i] not in dic:
dic[a[i]] = 1
else:
dic[a[i]] += 1
minval = min(dic.values())
maxkey = -1
for key in dic:
if dic[key] != minval:
continue
else:
if maxkey < key:
maxkey = key
return maxkey