剑指offer 13. 剪绳子

简介: 剑指offer 13. 剪绳子

题目描述


给你一根长度为 n nn 绳子,请把绳子剪成 m mm 段(m mm、n nn 都是整数,2 ≤ n ≤ 58 2≤n≤582≤n≤58 并且 m ≥ 2 m≥2m≥2)。


每段的绳子的长度记为 k [ 1 ] 、 k [ 2 ] 、 … … 、 k [ m ] k[1]、k[2]、……、k[m]k[1]、k[2]、……、k[m]。


k [ 1 ] , k [ 2 ] , … , k [ m ] k[1],k[2],…,k[m]k[1],k[2],…,k[m] 可能的最大乘积是多少?


例如当绳子的长度是 8 88 时,我们把它剪成长度分别为 2 22、3 33、3 33 的三段,此时得到最大的乘积 18 1818。

样例

输入:8
输出:18


方法一:数学 O(n)


1.png

class Solution {
public:
    int maxProductAfterCutting(int length) {
        if (length <= 3)   return length - 1;
        int res = 1;
        //将lenght变成3的倍数
        if (length % 3 == 2) res = 2, length -= 2;
        if (length % 3 == 1) res = 4, length -= 4;  //两个2相乘
        while (length)   res *= 3, length -= 3;
        return res;
    }
};




欢迎大家在评论区交流~

目录
相关文章
|
7月前
|
JSON 数据格式
星系炸弹(蓝桥杯)
星系炸弹(蓝桥杯)
【洛谷算法题】B2029-大象喝水【入门1顺序结构】
【洛谷算法题】B2029-大象喝水【入门1顺序结构】
|
C++
【LeetCode343】剪绳子(动态规划)
(1)确定状态 dp[i]是将正整数i拆成2个及其以上的正整数后,求所有数的乘积值。
145 0
【LeetCode343】剪绳子(动态规划)
|
测试技术
蓝桥 晚会节目单 (线段树)
蓝桥 晚会节目单 (线段树)
|
存储
剑指Offer - 面试题14:剪绳子
剑指Offer - 面试题14:剪绳子
87 0
|
机器学习/深度学习 人工智能
把所有的谎言献给你β(找规律数学题)
梓川咲太的面前坐着野兔先辈,作为约定,只好乖乖的打开笔记本开始学习了。 “加法符号写歪了,变成了乘法符号,在算式的第三行那个地方。”樱岛麻衣突然开口。
171 0
把所有的谎言献给你β(找规律数学题)
|
机器学习/深度学习
进击的奶牛(二分)
题目描述 Farmer John 建造了一个有 NN(2≤ N ≤ 100000) 个隔间的牛棚,这些隔间分布在一条直线上,坐标是 x1,,,,xn(0≤xi≤1000000000)。
196 0