LeetCode 343: Integer Break 题解

关于42步进电机驱动——基于STM32 HAL库实现 我找了好多资料,好多关于42步进电机的都是文档,这么文档都需要积分,需要积分就算了内容还非常差,浪费时间和电脑的内存。关于大部分是基于Arduino和51去驱动的 42步进电机驱动硬件如下: 首先你要了解步进电机的驱动原理,我也不啰嗦了,请看这边博客: 二相四线,四相五线,四相六线步进电机接线及驱动方法 , 看完这篇你就知道驱动和接线的原理了。 起初我也为如何接线烦恼,因为有些博客在讲述这些问题的时候没有讲的很透彻。 方法如下: ①用万用表调到欧姆档,用其中一个表笔搭在一个引脚上,依次测其它. 阅读详情

LeetCode 343: Integer Break 题解


题目要求:

Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum product you can get.
For example, given n = 2, return 1 (2 = 1 + 1); given n = 10, return 36 (10 = 3 + 3 + 4).

给定一个正整数n,将n分解成m个正整数之和,使得这m个正整数的乘积最大。


分析:

观察可知:
given n = 2 , return 1 (2 = 1+1)
given n = 3 , return 2 (3 = 1+2)
given n = 4 , return 4 (4 = 2+2)
given n = 5 , return 6 (5 = 2+3)
given n = 6 , return 9 (6 = 3+3)
given n = 7 , return 12 (7 = 2+2+3)
given n = 8 , return 18 (8 = 2+3+3)
given n = 9 , return 27 (9 = 3+3+3)
given n = 10 , return 36 (10 = 2+2+3+3)
当n<=3时,f(n) < n;
当n>=4时,f(n) >= n;
所以,当n的分解因子有大于等于4时,它可以分解成多个2和3之和来表示,这样最终得到的乘积将会更大。当n >=4时,它的的因子只能取2或3。可以得到递归公式如下:

dp[n]=⎧⎩⎨⎪⎪⎪⎪0,1,2,Math.max(2∗Math.max(dp[n−2],n−2),Math.max(3∗Math.max(dp[n−3],n−3)),n<=1n=2n=3n>=4

心得:

求解动态规划的问题,找出问题的最优子结构(即问题的最优解可以由相关子问题的最优解组合而成),将该问题用递归表达式的方式表示出来,再可以利用自己擅长的语言将问题实现!!!

具体实现代码:

采用自底向上的动态规划的方法来求解该问题。

public class Solution {
    public int integerBreak(int n) {
        if (n <= 1) {
            return 0;
        }   
        int[] dp = new int[n+1];
        if (n >= 2) {
            dp[2] = 1;
        }
        if (n >= 3) {
            dp[3] = 2;
        }
        for (int i = 4; i <= n; i++) {
            dp[i] = Math.max(2 * Math.max(dp[i-2], i-2), 3 * Math.max(dp[i-3], i-3));
        }
        return dp[n];
    }
}   

小贴士:

第一次写博客,各种不完美的地方请多多包含。


【天气雷达】双偏振产品-差分传播相移KDP详解 双偏振产品-差分传播相移KDP详解。 阅读详情

相关推荐

华为C语言笔试题(附答案)

华为C语言笔试题(附答案)     1、局部变量能否和全局变量重名?   答:能,局部会屏蔽全局。要用全局变量,需要使用 ":: "   局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。  

峰云四起 3031

【leetcode】343. Integer Break

343. Integer Breakhttps://leetcode.com/problems/integer-break/#/description Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integ

xxxxzr的博客 503

【SPSS实战】手动实现Quade非参数协方差分析:从数据准备到结果解读

本文详细介绍了在SPSS中手动实现Quade非参数协方差分析的全过程。针对数据不满足正态性和方差齐性假设时,如何通过秩转换、回归调整残差,并最终利用Kruskal-Wallis检验完成组间比较。该方法为处理含协变量的非参数多组比较问题提供了清晰的实战解决方案,并探讨了其与标准Quade检验的异同及适用场景。

weixin_29306317的博客 356

【LeetCode】343. Integer Break

343. Integer Break Description: Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum product you can get...

Microstrong 2596

网络虚拟化介绍(OVS、DVS)

网络虚拟化概念网络虚拟化就是把网络层的一些功能从硬件中剥离出来,建立新的网络虚拟层;该虚拟层可以接管网络服务和配置,实现网络服务与物理层的解耦,打破物理资源限制;通过网络虚拟层能够在一个物理网络上模拟出多个逻辑网络,并且多用户在逻辑网络上相互隔离,保证网络安全网络虚拟化的特点隔离性:不同租户的流量相互之间不能互访;但是IP/MAC地址都可以独立规划可移动性:虚拟机可以跨二层/三层迁移,甚至可以跨广域网迁移(迁移前后虚拟机Vlan和IP地址都不会发生变化)可扩展性:逻辑网络的规模和数量可扩展。

m0_49864110的博客 1万+

用友U8库龄分析避坑指南:物料出入库日期计算的5个常见错误

本文深入剖析了在用友U8系统中进行库龄分析时,物料出入库日期计算的五个常见陷阱。从数据源选择、业务类型过滤、计价方式逻辑、期初数据处理到查询性能优化,逐一解析错误根源并提供避坑指南,帮助企业获得准确的库龄数据,有效管理库存与资金风险。

weixin_29209801的博客 454

【leetcode】【medium】343. Integer Break​​​​​​​

343. Integer Break Given a positive integern, break it into the sum ofat leasttwo positive integers and maximize the product of those integers. Return the maximum product you can get. Example 1: ...

lemonade13的博客 280

AppFlow实战:零代码将Dify接入企业微信的完整指南

本文提供了一份零代码将Dify AI应用接入企业微信的完整实战指南。通过使用阿里云AppFlow作为无代码连接器,详细讲解了从获取Dify API密钥、创建企业微信应用到配置自动化流程的全过程,帮助团队快速将AI能力无缝融入日常协作,大幅提升工作效率。

php55的博客 808

leetcode题集:343. Integer Break

第11题:343.Integer Break 怎么说呢,水题一时爽,一直水题一直爽。 题目大意:给定一个正整数,使他等于至少两个数之和,并求这些加数的最大积。 题目分析:题目意思很清楚,就是求给定和的加数的最大积。动态转移方程:,其中。直接上代码: class Solution { public: int integerBreak(int n) { if(n=...

wx_14678的博客 324

Apple Store 上架过包:iOS审核4.3被拒原因分析与解决修改方案

Apple Store 上架过包:iOS审核4.3被拒原因分析与解决修改方案

专业解决各种上架过包问题,专业团队专业处理 749

Airtest进阶使用篇-提高脚本稳定性+批量运行脚本

Airtest进阶篇,主要分享如何提高脚本稳定性+如何批量运行脚本生成测试报告!

程序员小杨哥的博客 2569

343. Integer Break整数拆分

Integer Break 题目描述 leetcode.343 Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum product you can get. ...

天台一只小蜗牛 348

YOLOv10改进策略【注意力机制篇】| 2024 蒙特卡罗注意力(MCAttn)模块,提高小目标的关注度

本文记录的是基于蒙特卡罗注意力(MCAttn)模块的YOLOv10目标检测改进方法研究。利用提高的跨尺度特征提取能力,使模型能够更好地传递和融合提取的多尺度特征,提高对小目标的关注度。Exploiting Scale-Variant Attention for Segmenting Small Medical Objects使用一种基于随机采样的池化操作来生成尺度无关的注意力图。它从三个不同尺度(3×33×33×3、2×22×22×2和1×11×11×1,即池化张量)中随机选择一个1×11×11×1注意力图

Limiiiing的博客 2186

Leetcode 343. Integer Break (python+cpp)

Leetcode 343. Integer Break题目解析:解法1:recursion + memorization解法2:动态规划 题目 解析: 本质上这道题目和322 coin change是一样的,只不过用自然数替换coin,用max product替换min count而已,这边我们也用两种方法来解 解法1:recursion + memorization 这边的problem和subproblem之间的关系是: F(s) = max(F(S-i)*i,(S-i)*i for all i) 根

qq_37821701的博客 581

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

题目 https://leetcode.com/problems/integer-break/ 题解 一开始以为,只要是 3 个数相加就可以,于是在错误的方向上越走越远: 后来发现并不只是 3 个数,此方案不可行。 好在官方提供了 Hint。实际上,看了 Hint 之后,这道题虽然 AC 了,但我并没有真正搞明白原理,只是找到了表面上的规律。 找规律的过程草稿: class Solution { public int integerBreak(int n) { if (n =

寒泉 4万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

LeetCode-343. Integer Break [C++][Java]

Given an integern, break it into the sum ofkpositive integers, wherek >= 2, and maximize the product of those integers. Returnthe maximum product you can get.

贫道绝缘子的博客 6866

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

leetcode 343

Leetcode 343 题目来自leetcode 343 integer break 对于本题,尝试了两种方法,第一种方法比较直接,直接针对题目中的问题求解,但效率较低,第二种方法对问题进行了数学分析,效率较高: 一,直接求解 1、 算法分析 对于该题来讲,首先我们根据题目所述我们需要对一个整数进行加法的拆解,然后最大化这个乘积。由于没有确定要将原分成几部分,所以很难解决,但我们可以把它当作一...

weixin_42586153的博客 896

【Leetcode】343. 整数拆分(Integer Break)

Leetcode - 343 Integer Break (Medium) 题目描述:给定一个整数 n,求相加等于 n 并且成绩最大的一组整数的积。 Input: 10 Output: 36 Explanation: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36. 解题思路:定义状态 dp[i] 为 i 对应的最大乘积。 public int integerBreak(int n...

厉兵秣码 364

343. Integer Break

343. Integer Break 1. 题目 题目链接 Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum product you can get. ...

凌凌小博客 394

LeetCode 343. Integer Break

方便发在leet讨论区所以写成了英文=w= LeetCode 343. Integer Break As we all know, result like x^n can get max value, so let M/x = n, then res = x^n = x^(M/x) let : f(x) = x^(M/x) then: lnf(x) = (M/x)lnx f’(x)/f(x) = ...

quyan的博客 189

LeetCode刷题:343. Integer Break 整数分割

LeetCode刷题:343. Integer Break 整数分割 原题链接:https://leetcode.com/problems/integer-break/ Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of t...

梅森上校的博客 业精于勤荒于嬉,形成于思毁于随。 347

LeetCode 第 343 题 (Integer Break)

LeetCode 第 343 题 (Integer Break) Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum product you can ge

Ivan 的专栏 7848

LeetCode 343. Integer Break 解题报告

LeetCode 343. Integer Break 解题报告

骆小坑的填坑之旅 928

[leetcode]343. Integer Break

[leetcode]343. Integer Break Analysis 要加油鸭。。。—— [每天刷题并不难。。。] Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return ...

weixin_32135877的博客 215

【LeetCode】343. Integer Break 整数拆分(Medium)(JAVA)

【LeetCode】343. Integer Break 整数拆分(Medium)(JAVA) 题目地址: https://leetcode.com/problems/integer-break/ 题目描述: Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum prod

qq_16927853的博客 422

leetcode343. Integer Break

最近leetcode好像总是被墙什么鬼哦,不管,发现一道很好玩的题目:343 Integer BreakGiven a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum p...

Schnee-Cy的博客 481
forme_z
博客等级 码龄12年 0粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值