我正在尝试解决来自 codesignal.com 的以下挑战:
\n\n给定一个仅包含 1 到 a.length 范围内的数字的数组 a,找到第二次出现具有最小索引的第一个重复数字。换句话说,如果有超过 1 个重复数字,则返回第二次出现的索引比另一个数字第二次出现的索引小的数字。如果不存在这样的元素,则返回-1。
\n\n例子
\n\nFor a = [2, 1, 3, 5, 3, 2],输出应该是\n firstDuplicate(a) = 3。
有 2 个重复项:数字 2 和 3。第二次出现的 3 的索引比第二次出现的 2 的索引小,因此答案是 3。
\n\n对于a = [2, 4, 3, 5, 1],输出应为\n firstDuplicate(a) = -1。
执行时间限制为4秒。
\n\n保证的约束是:
\n\n1 \xe2\x89\xa4 a.length \xe2\x89\xa4 10^5, 和
1 \xe2\x89\xa4 a[i] \xe2\x89\xa4 a.length
所以我的代码是:
\n\ndef firstDuplicate(a):\n b = …Run Code Online (Sandbox Code Playgroud)