给定一个正整数 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. 整数拆分相关推荐

  1. leetcode - 343. 整数拆分

    343. 整数拆分 -------------------------------------------- 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获 ...

  2. LeetCode 343. 整数拆分(DP)

    1. 题目 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获得的最大乘积. 示例 1: 输入: 2 输出: 1 解释: 2 = 1 + 1, 1 × 1 = ...

  3. leetcode 343. 整数拆分(Integer Break)

    目录 题目描述: 示例 1: 示例 2: 解法: 题目描述: 给定一个 正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获得的最大乘积. 示例 1: 输入: 2 输出: ...

  4. LeetCode 343. 整数拆分(动态规划)

    题目描述 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获得的最大乘积. 示例 1: 输入: 2 输出: 1 解释: 2 = 1 + 1, 1 × 1 = 1 ...

  5. 87. Leetcode 343. 整数拆分 (动态规划-基础题)

    给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化.返回 你可以获得的最大乘积 .示例 1:输入: n = 2 输出: 1 解释: 2 = 1 ...

  6. LeetCode-动态规划基础题-343. 整数拆分

    描述 343. 整数拆分 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获得的最大乘积. 示例 1: 输入: 2 输出: 1 解释: 2 = 1 + 1, 1 ...

  7. 《dp补卡——343. 整数拆分、96. 不同的二叉搜索树》

    343. 整数拆分 1.确定dp数组以及下标含义. dp[i]:分拆数字i,可以得到的最大的乘积 2.确定递推公式: dp[i]最大乘积出处:从1遍历j到i,j * dp[i-j] 与 j * (i- ...

  8. 整数拆分 python_LeetCode 343. 整数拆分 | Python

    343. 整数拆分 题目 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获得的最大乘积. 示例 1: 输入: 2 输出: 1 解释: 2 = 1 + 1, 1 ...

  9. 剑指Offer 14- I. 剪绳子(Medium)/ 剪绳子 II(Medium)/ 343. 整数拆分(Medium)

    剑指Offer 14- II. 剪绳子 II(Medium) 343. 整数拆分(Medium) [题目连接] 题解 剪绳子(数学推导 / 贪心思想,清晰图解) 图解[暴力递归][记忆化技术][动态规 ...

  10. leetcode 343. Integer Break | 343. 整数拆分(Java)

    题目 https://leetcode.com/problems/integer-break/ 题解 一开始以为,只要是 3 个数相加就可以,于是在错误的方向上越走越远: 后来发现并不只是 3 个数, ...

最新文章

  1. ​​​​​​​CV:利用cv2(加载人脸识别xml文件及detectMultiScale函数得到人脸列表)+keras的load_model(加载表情hdf5、性别hdf5)并标注
  2. spring事务(Transaction)的七种事务传播行为及五种隔离级别
  3. .net 流(Stream) - 文件流、内存流、网络流
  4. C++Addition rule of probabilities概率加法法则算法(附完整源码)
  5. 3.Lucene3.x API分析,Director 索引操作目录,Document,分词器
  6. Facebook 的应用机器学习平台
  7. 直播丨探究Oracle多租户架构
  8. 用toString生成随机字符
  9. MySql触发器以及实例
  10. 打印机外接无线服务器,打印机配置外接网卡实现网络打印,请问怎样设置,越祥细越好,很急希望多帮忙...
  11. spring boot 报 http 406多种原因问题解决的总结
  12. c语言计算火车运行图调整暂停发售,详解铁路12306列车运行图调整,暂停发售
  13. python adsl自动拨号代码
  14. x-code中蓝色文件夹和绿色文件夹的区别
  15. 以影像技术为“桨“,荣耀如何讲好高端“新故事”?
  16. VS2017 MFC操作Excel
  17. windows操作系统常见持久性后门
  18. 通过不同的查询方式解决笛卡尔集问题
  19. CTF之misc-其他类型隐写
  20. 基于ssm技术的校自助阅览室的设计与实现 毕业设计-附源码242326

热门文章

  1. 修改telnet的用户名密码_远程管理设备telnet的N种设置方法
  2. Java实验方法参数传递与递归_4.3类的结构之二:方法(return,重载,可变个数形参,值传递,递归)...
  3. Python导入全局、局部模块以及如何让避免循环导入
  4. java封装省市区三级json格式,微信开发 使用picker封装省市区三级联动模板
  5. css检测,CSS检测工具 CSS Lint简介
  6. tkinter的可视化拖拽工具_可视化越做越丑?这五个高级图表效果实现流程分享给你...
  7. 大众点评订单系统分库分表实践
  8. Spring Cloud构建微服务架构:服务网关(基础)【Dalston版】
  9. java程序员必看经典书单,以及各个阶段学习建议
  10. BAT Java面试完整汇总:面试准备(心态+简历)+面试题目+6条面试经验