面試題14- I. 剪繩子

給你一根長(zhǎng)度為 n 的繩子,請(qǐng)把繩子剪成整數(shù)長(zhǎng)度的 m 段(m、n都是整數(shù),n>1并且m>1),每段繩子的長(zhǎng)度記為 k[0],k[1]...k[m-1] 。請(qǐng)問(wèn) k[0]k[1]...*k[m-1] 可能的最大乘積是多少?例如,當(dāng)繩子的長(zhǎng)度是8時(shí),我們把它剪成長(zhǎng)度分別為2、3、3的三段,此時(shí)得到的最大乘積是18。

示例 1:

輸入: 2
輸出: 1
解釋: 2 = 1 + 1, 1 × 1 = 1

示例 2:

輸入: 10
輸出: 36
解釋: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36

提示:

2 <= n <= 58

思路:

推論一: 將繩子 以相等的長(zhǎng)度等分為多段 ,得到的乘積最大。
推論二: 盡可能將繩子以長(zhǎng)度 3 等分為多段時(shí),乘積最大。

python3解法:

class Solution:
    def cuttingRope(self, n: int) -> int:
        if n <= 3 : return n-1
        a, b = n // 3, n % 3
        if b == 0:
            return int(math.pow(3, a))
        elif b == 1:
            return int(math.pow(3, a - 1) * 4)
        else:
            return int(math.pow(3,a) * 2)

來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/jian-sheng-zi-lcof/solution/mian-shi-ti-14-i-jian-sheng-zi-tan-xin-si-xiang-by/
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容