![]() |
1
6
在Python2.7或Python3中,它可以写得更简单
|
![]() |
2
3
你也可以使用和我上面写的相同的算法,只需使用一个hashmap。
仍然是O(N),可能比我上面的版本更快,内存更少。 |
![]() |
3
2
这个怎么样:
它只创建了一个用来查找事物的命令。 好吧,只要这两个列表中的每个条目都只出现一次,那么我们就知道,一旦我们在rank_a集合中查找了一个键,我们就不再需要它了。我们可以删除它。此外,为了节省空间,在需要特定密钥之前,我们不必填充该集合。
|
![]() |
4
1
|
![]() |
5
0
好吧,根据列表的大小,有很多不同的方法。在不知道数据集有多大的情况下,我建议最简单的方法(可能是不必要的优化)如下:
它以O(N)的形式运行。 |
![]() |
6
0
|
![]() |
7
0
新的和改进的,而不是O(n 二 ) :但仍然比其他两个答案慢。 此解决方案的唯一优点是节省内存。它避免了构建一个大型dict,而是只存储当时所需的内容。TokenMacGuy的第二个解决方案也能做到这一点,但速度稍快。
这里有一些大多数答案的计时结果(在Python中所有的答案,除非我遗漏了什么)。
我用来计时的代码是 here . 我很高兴我在时间的基础上为它设计的时间框架。在重构用于运行测试的代码之后,将来应该很有用。 |
![]() |
July · 如何定义数字间隔,然后四舍五入 1 年前 |
![]() |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
|
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
![]() |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
|
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
![]() |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |