【发布时间】:2014-10-06 18:43:15
【问题描述】:
问题是找到最大的正整数集合 S,使得 S 的元素的平方和等于给定数 n。
例如:
4 = 2²
20 = 4² + 2²
38 = 5² + 3² + 2²
300 = 11² + 8² + 7² + 6² + 4² + 3² + 2² + 1²。
我有一个及时运行的算法O(2^(sqrt n) * n),但它太慢了(每个正方形子集)。
【问题讨论】:
-
所以问题是你追求更快的算法?
-
很遗憾我的解决方案太慢了。
-
你的问题并不清楚,因为你根本没有提到它。
-
你给出的例子是错误的。 300 可以写成 11² + 8² + 7² + 6² + 4² + 3² + 2² + 1²。
-
OP,你熟悉动态规划吗?您可以在任何优秀的算法书籍中了解它。