相关疑难解决方法(0)

什么使集合比列表更快?

python wiki说:"使用集合和字典进行成员资格测试比搜索序列O(n)要快得多.当测试"a in b"时,b应该是一个集合或字典而不是列表或元组".

每当速度在我的代码中很重要时,我一直在使用集合代替列表,但最近我一直在想为什么集合比列表快得多.任何人都可以解释,或指向一个可以解释的消息来源,在python中幕后发生了什么,以便更快地制作集合?

python list set

37
推荐指数
4
解决办法
2万
查看次数

解决Python中的“firstDuplicate”问题

我正在尝试解决来自 codesignal.com 的以下挑战:

\n\n

给定一个仅包含 1 到 a.length 范围内的数字的数组 a,找到第二次出现具有最小索引的第一个重复数字。换句话说,如果有超过 1 个重复数字,则返回第二次出现的索引比另一个数字第二次出现的索引小的数字。如果不存在这样的元素,则返回-1。

\n\n

例子

\n\n

For a = [2, 1, 3, 5, 3, 2],输出应该是\n firstDuplicate(a) = 3

\n\n

有 2 个重复项:数字 2 和 3。第二次出现的 3 的索引比第二次出现的 2 的索引小,因此答案是 3。

\n\n

对于a = [2, 4, 3, 5, 1],输出应为\n firstDuplicate(a) = -1

\n\n

执行时间限制为4秒。

\n\n

保证的约束是:

\n\n

1 \xe2\x89\xa4 a.length \xe2\x89\xa4 10^5, 和

\n\n

1 \xe2\x89\xa4 a[i] \xe2\x89\xa4 a.length

\n\n

所以我的代码是:

\n\n
def firstDuplicate(a):\n    b = …
Run Code Online (Sandbox Code Playgroud)

python arrays list

3
推荐指数
1
解决办法
4042
查看次数

标签 统计

list ×2

python ×2

arrays ×1

set ×1