def largest_34(a:list):
a.sort()
m1, m2, m3, m4 = a[3], a[2], a[1], a[0]
for i in a[4:]:
if i > m1:
m4 = m3
m3 = m2
m2 = m1
m1 = i
return m3+m4
def largest_third(a:list):
n = len(a)//3
a.sort()
a.reverse()
sum_n = 0
for i in range(n):
sum_n += a[i]
return sum_n
def third_at_least(a:list):
L2 = []
a.sort()
MatchNum = (len(a)//3 + 1)
Return_Val_in_List = []
for i in range(len(a)):
if (i == len(a)-1):
CountNum = (a[i], a.count(a[i]))
L2.append(CountNum)
elif a[i] != a[i+1] and i != (len(a)-1):
CountNum = (a[i], a.count(a[i]))
L2.append(CountNum)
for j in range(len(L2)):
if L2[j][1] >= MatchNum:
Return_Val_in_List.append(L2[j][0])
if Return_Val_in_List == []:
return None
else:
return Return_Val_in_List
我正在学习大写符号。我希望得到上述代码的正确答案。因此,对于第一个问题,我认为它是nlog(n)
,因为它有a.sort()
,即nlog(n)
和for循环,即n
。我对这个问题的回答是n+nlog(n)
。由于这些小数字被抛弃,我会说它是nlog(n)
对于问题2,我会说n+log(n)
(来自nlog(n)
的{{1}}和来自for循环的a.sort
)。因此,最终答案与Q1相同。 n
对于问题3,我会说nlog(n)
(来自nlog(n)+2n
的{{1}}和来自for循环的nlog(n)
。
我能接受这个逻辑吗?如果没有,有人可以解释如何分析这些代码吗?