Skip to content

Latest commit

 

History

History
32 lines (27 loc) · 815 Bytes

File metadata and controls

32 lines (27 loc) · 815 Bytes

343. Integer Break

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.

Example 1:

Input: 2
Output: 1
Explanation: 2 = 1 + 1, 1 × 1 = 1.

Example 2:

Input: 10
Output: 36
Explanation: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36.

Note: You may assume that n is not less than 2 and not larger than 58.

Solutions (Rust)

1. Mathematical

impl Solution {
    pub fn integer_break(n: i32) -> i32 {
        match (n, (n - 2) / 3) {
            (2, _) | (3, _) => n - 1,
            (_, x) => 3i32.pow(x as u32) * (n - 3 * x),
        }
    }
}