【发布时间】:2021-01-08 23:50:48
【问题描述】:
Eg. [2,8,4,2]
8 has divisors 2,8,4,2
4 has divisor 2,4,2
2 has divisor 2,2
因此 8 具有列表中存在的最大除数。 我可以想到 O(n^2) 算法(排序然后蛮力)但是有没有更优化的解决方案?
编辑:更新示例。
【问题讨论】:
-
我不清楚为什么 8 的除数是 2,8,2 而 6 的除数只有 2。为什么 6 没有除数 2,6,2?
-
答案可能是否定的——因为输出大小可以是 O(n^2)...如果你改变输出格式也许是可能的。
-
@Yonlif 输出大小为 O(1)。问题中示例的答案只是
8。 -
正确,输出让我很困惑。对不起。
-
对不起,我在示例中搞砸了。修复它谢谢。 @Yonlif 我仍然认为可能有更好的解决方案,因为有一些重复计算,如果我们可以将其存储在树或不同的数据结构中,可能会更优化
标签: arrays algorithm binary-tree