【剑指offer】面试题 14. 剪绳子

面试题 14. 剪绳子

LeetCode

题目描述
给你一根长度为 n 的绳子,请把绳子剪成 m 段(m、n 都是整数,n>1 并且 m>1),每段绳子的长度记为 k[0],k[1],···,k[m]。请问 k[0] x k[1] x···x k[m] 可能的最大乘积是多少?例如,当绳子的长度是 8 时,我们把它剪成长度分别为 2、3、3 的三段,此时得到的最大乘积是 18。

Java 实现

class Solution {
    public int integerBreak(int n) {
        if (n == 2) {
            return 1;
        }
        if (n == 3) {
            return 2;
        }
        int product = 1;
        while (n >= 5) {
            product *= 3;
            n -= 3;
        }
        product *= n;
        return product;
    }
}

猜你喜欢

转载自www.cnblogs.com/hglibin/p/10940667.html