随笔 - 165,  文章 - 0,  评论 - 4,  阅读 - 18023

题目:

class Solution {
public:
    int cuttingRope(int n) {
        vector<int> dp(n+1);      //dp[i]表示长度为i的绳子能得到的最大乘积
        dp[0]=0;
        dp[1]=0;
        dp[2]=1;      //长度为0和1的绳子不能剪不了
        for(int i=3;i<=n;i++){
            for(int j=1;j<=i/2;j++){      //j代表这一次剪出一段长度为j的绳子,最多只要剪到绳长的一半即可。j固定住
                dp[i] = max(dp[i], max(j*(i-j), j*dp[i-j]));      //分成两段:j*(i-j);分成若干段:一段为j,另外(i-j)分为若干段;针对每一个不同的j(剪掉的长度),dp[i]都会更新一次,所以也要比较
            }
        }
        return dp[n];
    }
};

作者:Gnakuw
链接:https://leetcode.cn/problems/jian-sheng-zi-lcof/solutions/1382261/by-nehzil-w61p/
来源:力扣(LeetCode)

posted on   孜孜不倦fly  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示