【发布时间】:2021-05-29 06:05:46
【问题描述】:
我在这里有一个 compare 函数,它比较 2 个 4 位数字(非重复数字)并给出 x(n1 和 n2 中的位数,并且在同一位置),和y(n1 和n2 中的位数,但位置不同)。我所做的是使用for 循环将数字存储为results 字典的键,并将相应的位置存储为results 字典的值。然后,我使用另一个for 循环遍历字典,得到x 和y。有什么办法可以降低这个函数的时间复杂度?
def compare(n1, n2):
x, y = 0, 0
result = {}
s1, s2 = str(n1), str(n2)
for i in range(0, 4):
result[s1[i]] = i
for i in range(0, 4):
if s2[i] in result:
if result[s2[i]] == i:
x += 1
else:
y += 1
【问题讨论】:
-
这个任务的改进不能超过 O(n)。
-
@DeGo 所以我的代码的当前复杂度是 O(n)?抱歉,因为我对时间复杂度的概念不是很熟悉...
-
重复你自己的问题:@Jover Tay:这个月你已经问了 3 次几乎相同的问题,请避免在 StackOverflow 上重复问题,你甚至不开车重复所需的细节和约束,如 aolny 4 位非重复数字:stackoverflow.com/questions/67345736/…stackoverflow.com/questions/67748271/…
标签: python algorithm loops for-loop time-complexity