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. 整数拆分相关推荐
- leetcode - 343. 整数拆分
343. 整数拆分 -------------------------------------------- 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获 ...
- LeetCode 343. 整数拆分(DP)
1. 题目 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获得的最大乘积. 示例 1: 输入: 2 输出: 1 解释: 2 = 1 + 1, 1 × 1 = ...
- leetcode 343. 整数拆分(Integer Break)
目录 题目描述: 示例 1: 示例 2: 解法: 题目描述: 给定一个 正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获得的最大乘积. 示例 1: 输入: 2 输出: ...
- LeetCode 343. 整数拆分(动态规划)
题目描述 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获得的最大乘积. 示例 1: 输入: 2 输出: 1 解释: 2 = 1 + 1, 1 × 1 = 1 ...
- 87. Leetcode 343. 整数拆分 (动态规划-基础题)
给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化.返回 你可以获得的最大乘积 .示例 1:输入: n = 2 输出: 1 解释: 2 = 1 ...
- LeetCode-动态规划基础题-343. 整数拆分
描述 343. 整数拆分 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获得的最大乘积. 示例 1: 输入: 2 输出: 1 解释: 2 = 1 + 1, 1 ...
- 《dp补卡——343. 整数拆分、96. 不同的二叉搜索树》
343. 整数拆分 1.确定dp数组以及下标含义. dp[i]:分拆数字i,可以得到的最大的乘积 2.确定递推公式: dp[i]最大乘积出处:从1遍历j到i,j * dp[i-j] 与 j * (i- ...
- 整数拆分 python_LeetCode 343. 整数拆分 | Python
343. 整数拆分 题目 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获得的最大乘积. 示例 1: 输入: 2 输出: 1 解释: 2 = 1 + 1, 1 ...
- 剑指Offer 14- I. 剪绳子(Medium)/ 剪绳子 II(Medium)/ 343. 整数拆分(Medium)
剑指Offer 14- II. 剪绳子 II(Medium) 343. 整数拆分(Medium) [题目连接] 题解 剪绳子(数学推导 / 贪心思想,清晰图解) 图解[暴力递归][记忆化技术][动态规 ...
- leetcode 343. Integer Break | 343. 整数拆分(Java)
题目 https://leetcode.com/problems/integer-break/ 题解 一开始以为,只要是 3 个数相加就可以,于是在错误的方向上越走越远: 后来发现并不只是 3 个数, ...
最新文章
- ​​​​​​​CV:利用cv2(加载人脸识别xml文件及detectMultiScale函数得到人脸列表)+keras的load_model(加载表情hdf5、性别hdf5)并标注
- spring事务(Transaction)的七种事务传播行为及五种隔离级别
- .net 流(Stream) - 文件流、内存流、网络流
- C++Addition rule of probabilities概率加法法则算法(附完整源码)
- 3.Lucene3.x API分析,Director 索引操作目录,Document,分词器
- Facebook 的应用机器学习平台
- 直播丨探究Oracle多租户架构
- 用toString生成随机字符
- MySql触发器以及实例
- 打印机外接无线服务器,打印机配置外接网卡实现网络打印,请问怎样设置,越祥细越好,很急希望多帮忙...
- spring boot 报 http 406多种原因问题解决的总结
- c语言计算火车运行图调整暂停发售,详解铁路12306列车运行图调整,暂停发售
- python adsl自动拨号代码
- x-code中蓝色文件夹和绿色文件夹的区别
- 以影像技术为“桨“,荣耀如何讲好高端“新故事”?
- VS2017 MFC操作Excel
- windows操作系统常见持久性后门
- 通过不同的查询方式解决笛卡尔集问题
- CTF之misc-其他类型隐写
- 基于ssm技术的校自助阅览室的设计与实现 毕业设计-附源码242326
热门文章
- 修改telnet的用户名密码_远程管理设备telnet的N种设置方法
- Java实验方法参数传递与递归_4.3类的结构之二:方法(return,重载,可变个数形参,值传递,递归)...
- Python导入全局、局部模块以及如何让避免循环导入
- java封装省市区三级json格式,微信开发 使用picker封装省市区三级联动模板
- css检测,CSS检测工具 CSS Lint简介
- tkinter的可视化拖拽工具_可视化越做越丑?这五个高级图表效果实现流程分享给你...
- 大众点评订单系统分库分表实践
- Spring Cloud构建微服务架构:服务网关(基础)【Dalston版】
- java程序员必看经典书单,以及各个阶段学习建议
- BAT Java面试完整汇总:面试准备(心态+简历)+面试题目+6条面试经验