日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Leetcode--343. 整数拆分

發布時間:2024/7/19 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Leetcode--343. 整数拆分 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

給定一個正整數?n,將其拆分為至少兩個正整數的和,并使這些整數的乘積最大化。 返回你可以獲得的最大乘積。

示例 1:

輸入: 2
輸出: 1
解釋: 2 = 1 + 1, 1 × 1 = 1。
示例?2:

輸入: 10
輸出: 36
解釋: 10 = 3 + 3 + 4, 3 ×?3 ×?4 = 36。
說明: 你可以假設?n?不小于 2 且不大于 58。

思路:只有2,3不用拆分,其他數字只有拆為2,3才能乘積最大

4? ? ? max:2*2

5? ? ? max:2*3

6? ? ? max:2*2*2? ? ?(剛開始發現拆為3*2*1,如果出現1,那就把3*1換成2*2,使乘積最大)

7:? max:3*2*2

......

提交的代碼:

class?Solution?{

????public?int?integerBreak(int?n)?{

???????int?max=1;

????if(n==2)

????{

????????return?1;

????}

????if(n==3)

????{

????????return?2;

????}

????while(n>=3)

????{

????????max*=3;

????????n-=3;

????}

????if(n==2)

????{

????????max*=2;

????????n-=2;

????}

????if(n==1)

????{

????????max/=3;

????????max*=4;

????????n-=1;

????}

????return?max;

????}

}

完整的代碼:


public class Solution343 {
public static int integerBreak(int n) {
?? ?int max=1;
?? ?if(n==2)
?? ?{
?? ??? ?return 1;
?? ?}
?? ?if(n==3)
?? ?{
?? ??? ?return 2;
?? ?}
?? ?while(n>=3)
?? ?{
?? ??? ?max*=3;
?? ??? ?n-=3;
?? ?}
?? ?if(n==2)
?? ?{
?? ??? ?max*=2;
?? ??? ?n-=2;
?? ?}
?? ?if(n==1)
?? ?{
?? ??? ?max/=3;
?? ??? ?max*=4;
?? ??? ?n-=1;
?? ?}
?? ?return max;
? ? }
public static void main(String[] args)
{
?? ?int n =2;
?? ?System.out.println(integerBreak(n));
}
}
?

總結

以上是生活随笔為你收集整理的Leetcode--343. 整数拆分的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。