【发布时间】:2015-10-04 15:44:30
【问题描述】:
我的算法和在可能重复中找到的算法是O(n),对于要求来说太慢了。
1
【问题讨论】:
-
嗯,尝试
i=1 to n-1中的每个数字,检查SQRT(n^2 - i^2)是否为整数是一个 O(n) 算法,虽然远不是最快的。 -
这里我需要一个比 O(n) 更快的解决方案..
-
n的下限和上限是多少?
-
显而易见的算法是
O(n^0.5)——搜索数字i直到(n/2)^0.5,看看n - i^2是不是正方形。 -
只有 500 万个值。 O(1) 的解决方案是预先计算它们。