剪绳子_JAVA_中等

剪绳子

http://www.nowcoder.com/questionTerminal/57d85990ba5b440ab888fc72b0751bf8

  • 设绳子长为n的解为f(n),则
    图片说明
    即长为n的解 为 长为j的解 和 长为n-j的解 的乘积的最大值
public class Solution {
    public int cutRope(int target) {
        int[] cache = new int[target + 1];
        // 求绳子长为i的解
        for(int i = 1; i <= target; i++) {
            // 绳子长为i的解可化为 长为i-j与j的解的乘积最大值
            int max = i;
            for(int j = 1; j  <= i / 2; j++) {
                max = Math.max(max, cache[i - j] * cache[j]);
            }
            cache[i] = max;
        }
        return cache[target];
    }
}
全部评论

相关推荐

09-08 17:17
同济大学 Java
狗不理fe:里面的人劝一句,别来虾,我们部门24校招生淘汰率30%,还有一些人说有一年保护期,不可能!!!
我的秋招日记
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务