最近我开始用Python学习数据结构
list_ = [6, 4, 3, 2, 1, 7]
expected_sum_result = 9
def two_pair_sum_using_complement(array, expected_sum):
unique_numbers = set() #set
for num in array:
if num in unique_numbers:
return True
unique_numbers.add(expected_sum - num)
print(unique_numbers)
return False
print(
two_pair_sum_using_complement(array=list_, expected_sum=expected_sum_result))
在上面的代码中,你可以简单地说 BIG O 是 O(n) 但我有疑问的是,我在操作符中使用了 if num in unique_numbers 以获得 O(n) 复杂度,我提到了这个网站 https://wiki.python.org/moin/TimeComplexity 我已附上屏幕截图。
那么,我可以认为我有一个 O(n) 的 FOR 循环,并且我有一个在 FOR 循环内有 O(n) 的 in 运算符,因此复杂度是 O(n^2)?
我尝试过使用一些网站和人工智能,但我无法轻松理解这些事情。
在最坏的情况下,它可能是 O(n),但它在多次查找中摊销为 O(1)。