Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum product you can get.
For example, given n = 2, return 1 (2 = 1 + 1); given n = 10, return 36 (10 = 3 + 3 + 4).
Note: You may assume that n is not less than 2 and not larger than 58.
Hint:
There is a simple O(n) solution to this problem.
You may check the breaking results of n ranging from 7 to 10 to discover the regularities.
解法1:找规律, O(N)
如果把从2到10的结果写出来可以发现,最大的结果是每一个数先分解成3的和,然后和剩下的数的乘积最大。本题还有DP的解法,之后补上
|
|
|
|