JZ67-剪绳子

剪绳子

https://www.nowcoder.com/practice/57d85990ba5b440ab888fc72b0751bf8?tpId=13&tags=&title=&diffculty=0&judgeStatus=0&rp=1&tab=answerKey

class Solution {
    public int cutRope(int target) {
        if (target == 2) {
            return 1;
        } else if (target == 3) {
            return 2;
        }
        return helper(target);
    }

    private int helper(int n) {
        if (n <= 4) {
            return n;
        }
        int ret = 0;
        for (int i = 1; i < n; i++) {
            ret = Math.max(ret, i * helper(n - i));
        }
        return ret;
    }
}

class Solution2 {
    public int cutRope(int target) {
        int[] dp = new int[target + 1];
        dp[1] = 1;
        for (int i = 2; i <= target; i++) {
            for (int j = 1; j < i; j++) {
                dp[i] = Math.max(dp[i], Math.max(j * (i - j), dp[j] * (i - j)));
                //              直接不分开  分成 j i-j(都 不 继续下分)  分成 j(继续下分)  i-j
            }
        }
        return dp[target];
    }
}

全部评论

相关推荐

深夜书店vv:腾讯是这样的,去年很多走廊都加桌子当工区
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务