我和Gareth Rees有类似的解决方案。解决方案here。然而,他的解决方案和我的解决方案都无法在foobar上进行3次测试。以下是我的解决方案。我已经严格测试了两个代码,并给出了正确的结果。我想知道问题是否与时间/空间复杂性有关。以下是我的代码。
from collections import defaultdict
from collections import Counter
def answer(l):
count=0
if len(l)<3: return count
d=defaultdict(set)
occurence=Counter(l)
l.sort()
for i in range(len(l)):
for j in range(i+1,len(l)):
if l[j]%l[i]==0:
d[l[i]].add(l[j])
for key in sorted(list(d)):
if occurence[key]>=3:
count+=1
for x in sorted(list(d[key])):
d[key].discard(x)
possibilities=len(d[x])
count+=possibilities
return count