forked from fishercoder1534/Leetcode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path_343.java
29 lines (24 loc) · 937 Bytes
/
_343.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package com.fishercoder.solutions;
/**
* 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.
*/
public class _343 {
public int integerBreak(int n) {
if (n == 2) {
return 1;
} else if (n == 3) {
return 2;
} else if (n % 3 == 0) {
return (int) Math.pow(3, n / 3);
} else if (n % 3 == 1) {
return 2 * 2 * (int) Math.pow(3, (n - 4) / 3);
} else {
return 2 * (int) Math.pow(3, n / 3);
}
}
}