【发布时间】:2021-06-17 04:14:37
【问题描述】:
我正在处理一个代码挑战问题——“找到幸运三元组”。 “幸运三元组”被定义为“在lst 列表中,对于任何三元组组合,如(lst[i], lst[j], lst[k]) where i < j < k,其中lst[i] divides lst[j] 和lst[j] divides lst[k]。
我的任务是找出给定列表中幸运三元组的数量。蛮力的方法是使用三个循环,但解决问题需要太多时间。我写了这个,系统响应“时间超过”。这些问题看起来很傻很容易,但是数组是未排序的,所以像二进制搜索这样的一般方法不起作用。我被这个问题惊呆了一天,希望有人能给我一个提示。我正在寻找一种更快解决问题的方法,至少时间复杂度应该低于O(N^3)。
【问题讨论】:
-
" 有什么方法可以更快地找到幸运三元组的总数吗?"如果这已被分配为家庭作业,那么答案大概是“是”。你试过什么?
-
@JohnColeman 我写了蛮力一。我还没有想出任何其他方法,所以我正在寻求帮助。为什么你们不赞成这个?请让我知道我应该改进什么。
-
这个问题的措辞使它看起来有点像一个家庭作业问题的陈述,没有证据表明学生为解决它付出了努力。每天都会发布许多此类问题,并且往往被严重否决。您的问题可能被误认为是这样的问题。如果您说您已经实施了蛮力解决方案并想要一些有关寻找更有效解决方案的提示,您会得到更好的响应。如果您稍微修改您的问题,我很乐意将我的反对票改为赞成票。
-
@JohnColeman,嗨,约翰,我已经修改了描述。希望它工作正常。任何有关该问题的想法表示赞赏。谢谢。
-
如果a%b = 0,b%c = 0,那么a%c呢?
标签: algorithm