【发布时间】:2017-12-20 05:14:03
【问题描述】:
这是一个关于codefights的问题:
给定一个数组 a 只包含从 1 到 a.length,找到第二个重复的数字 出现具有最小索引。换句话说,如果有更多 超过 1 个重复的数字,返回第二个的数字 出现的索引小于另一个的第二次出现 数字可以。
我一直在努力弄清楚如何在 python 中完成这项工作。我不确定我是否走在正确的道路上,如果我在从我的 d 字典中找到特定值后,我似乎无法弄清楚如何访问我的索引字典。我想在我的 d 字典中获取所有大于 1 的值,然后从 index 中获取这些值,然后 index 中较小的值就是答案。
如果我完全错了,请告诉我。
def firstDuplicate(a):
d = {}
index = {}
for i in a:
if i in d:
d[i] += 1
else:
d[i] = 1
for i,e in enumerate(a):
if e in d:
index[e] = i
else:
index[e] = i
for key,val in d.items():
if val > 1:
【问题讨论】:
-
你试过运行这段代码吗?
标签: python algorithm python-2.7 dictionary data-structures