我有两个似乎无法理解大符号的功能。
我在每一行的侧面都写了注释,表明我认为运行时间是什么。
#Question 1
def fn_c(L):
def helper_c(elem):
a = [] #O(1)
for k in range(len(L)): #O(n)
a.append(elem) #O(1)
return a #0(1)
return list(map(helper_c, L)) #O(n)
#Question 2
def fn_d(n):
ans = 1 #O(1)
collection = list(range(2*n)) #O(2n)
#Looping is O(2n)
for x in collection: #0(n)
if x%10==1: #O(1)
ans = ans + 1 #O(1)
else:
ans = ans + 2 #O(1)
return ans
我认为第一个问题是O(n ^ 2),第二个问题是O(2 ^ n)。不过我不太确定。