题解 | #剪绳子#

剪绳子

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

分析题目: 一个数乘积最大就是求有多少个2、多少个3

动态规划求解

 public int cutRope(int target) {
        if(target == 2)return 1;
   		int[] dp = new int[target+1];//i数的最大值为dp[i]
        dp[0]=0;dp[1]=1;dp[2]=2;dp[3]=3;
        
        for(int i = 4; i<=target;i++)dp[i] = Math.max(dp[i-2]*2,dp[i-3]*3);
        return dp[target];
    }

模拟求解

public class Solution {
    public int cutRope(int target) {
        int sum = 1;
        while(target>0){
            if(target%3==0){
                sum*=3;
                target-=3;
             } else {
                sum*=2;
                target-=2;
            }
        }
        return sum;
    }
}
全部评论

相关推荐

点赞 评论 收藏
分享
05-25 10:45
门头沟学院 Java
Frank_zhan...:没实习一个项目肯定不够,可以再做一个轮子,技术栈再补一个mq,微服务,整体再换个简历模板,暑期尽量再找一个日常实习
无实习如何秋招上岸
点赞 评论 收藏
分享
那一天的Java_J...:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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