问题
编写一个函数 answer(l),该函数采用正整数列表 l 并计算 (lst[i], lst[j], lst[k]) 的“幸运三元组”的数量,其中 i < j < k。l 的长度介于 2 和 2000 之间(含)。l 的元素介于 1 和 999999之间。答案适合有符号的 32 位整数。一些列表是故意生成的,没有任何访问代码来甩掉间谍,因此如果没有找到三元组,则返回0。
幸运三元组基本上是元组(x,y,z),其中x除以y,y除以z,例如(1,2,4)。
例如,[1, 2, 3, 4, 5, 6]具有三元组:[1, 2, 4],[1, 2, 6],[1, 3, 6],使答案总计3。
我的代码
def isLuckyTriple(a,b,c):
if b%a==0 and c%b==0:
return True
return False
def solution(l):
count=0
l=sorted(l)
for i in range(len(l)-2):
for j in range(i+1,len(l)-1):
for k in range(j+1,len(l)):
if isLuckyTriple(l[i],l[j],l[k]):
count+=1
return count
我的问题
我已经查看了一些关于这个问题的堆栈溢出答案。我知道如何以不同和更优化的方式做到这一点。唯一的问题是,我的上述代码只通过了5个给定测试用例中的2个测试用例。我想了解我在上面的代码中做错了什么。我更感兴趣的是找出我的错误,而不是以更好的方式去做。
如果您不认为代码不正确,那么它是否因为解决方案非常慢而使测试用例失败?
任何帮助将不胜感激。
蛊毒传说
函数式编程
素胚勾勒不出你
相关分类