LeetCode–剪繩子
博客說明
文章所涉及的資料來自互聯網整理和個人總結,意在于個人學習和經驗匯總,如有什么地方侵權,請聯系本人洗掉,謝謝!
介紹
劍指 Offer 14- I. 剪繩子
主站 343
題目
給你一根長度為 n 的繩子,請把繩子剪成整數長度的 m 段(m、n都是整數,n>1并且m>1),每段繩子的長度記為 k[0],k[1]...k[m-1] ,請問 k[0]k[1]...*k[m-1] 可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2、3、3的三段,此時得到的最大乘積是18,
示例 1:
輸入: 2
輸出: 1
解釋: 2 = 1 + 1, 1 × 1 = 1
示例 2:
輸入: 10
輸出: 36
解釋: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36
提示:
2 <= n <= 58
思路

代碼
class Solution {
public int cuttingRope(int n) {
if(n <= 3){
return n-1;
}
int a = n/3, b = n%3;
if(b == 0){
return (int)Math.pow(3,a);
}else if(b == 1){
return (int)Math.pow(3,a-1)*4;
}else{
return (int)Math.pow(3,a)*2;
}
}
}
感謝
Leetcode
以及勤勞的自己,個人博客,GitHub
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/10054.html
標籤:Java

