LeetCode 343. 整数拆分(DP)

1. 题目

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

示例 1:
输入: 2
输出: 1
解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:
输入: 10
输出: 36
解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。
说明: 你可以假设 n 不小于 2 且不大于 58

《剑指offer》同题 面试题14- I. 剪绳子

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/integer-break
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • dp[n]dp[n]dp[n] 表示获得的最大乘积
  • 当 n+1 时,可以拆成 (1,n),(2,n−1),(3,n−2),…,(n,1)(1,n),(2,n-1),(3,n-2),…,(n,1)(1,n),(2,n1),(3,n2),,(n,1)
  • dp[n+1]=max(1∗dp[n],2∗dp[n−1],...,n∗dp[1],...1∗n,2∗(n−1),...,n∗1)dp[n+1]=max(1*dp[n],2*dp[n-1],...,n*dp[1],...1*n,2*(n-1),...,n*1)dp[n+1]=max(1dp[n],2dp[n1],...,ndp[1],...1n,2(n1),...,n1)
class Solution {
public:int integerBreak(int n) {int dp[n+1] = {0};dp[2] = 1;int i, j;for(i = 3; i <= n; ++i){for(j = 1; j <= i-2; ++j)dp[i] = max(dp[i], max(j*dp[i-j], j*(i-j)));}return dp[n];}
};
class Solution {
public:int cuttingRope(int n) {int dp[n+1] = {0};dp[2] = 1;int i, j;for(i = 3; i <= n; ++i){	for(j = 1; j < i; ++j)dp[i] = max(dp[i], max(j,dp[j])*max(i-j, dp[i-j]));}return dp[n];}
};

在这里插入图片描述
n 很大的时候,避免溢出:《剑指offer》面试题14- II. 剪绳子 II

有结论:划分成尽可能多的3,最多2个2

  • 求余1,2个2
  • 求余2,1个2
class Solution {
public:int cuttingRope(int n) {if(n <= 3)return n-1;//尽可能多的3, 两端最多只有2个2int p = n/3, q = n%3;long long sum = 1;if(q == 1)//多分出3个,凑成4 变成2*2 > 3*1sum *= 4, p -= 1;if(q == 2) sum *= 2;for(int i = 0; i < p; i++){sum = sum * 3 % 1000000007;}return sum;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478229.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python-dotenv解析env文件

python-dotenv解析env文件 最简单和最常见的用法是在应用程序启动时调用load_dotenv&#xff0c;从当前目录或其父目录中的.env文件或指定的路径加载环境变量&#xff0c;然后调用os.getenv提供的与环境相关的方法 .env 文件内容写法 ADMIN_HOST https://uat-rm-gwaaa.cn A…

HDFS NameNode内存详解

前言 《HDFS NameNode内存全景》中&#xff0c;我们从NameNode内部数据结构的视角&#xff0c;对它的内存全景及几个关键数据结构进行了简单解读&#xff0c;并结合实际场景介绍了NameNode可能遇到的问题&#xff0c;还有业界进行横向扩展方面的多种可借鉴解决方案。 事实上&am…

组队瓜分百万奖金池,资深算法工程师带你挑战飞桨论文复现赛!

你是否正在焦虑找不到好的论文&#xff1f;好不容易找到了paper&#xff0c;无法复现出code&#xff1f;缺少科研同行交流&#xff0c;只能独自一人闭门造车&#xff1f;是的&#xff0c;论文复现是要想最快的学习和了解AI领域的方式&#xff0c;复现困境也被叫做“徘徊在 AI 上…

开源开放 | Beyond 预训练语言模型,NLP还需要什么样的知识?

近年来&#xff0c;深度学习技术已广泛应用于NLP领域&#xff0c;但实际应用效果往往受限于缺乏大规模高质量监督样本。2018年底&#xff0c;预训练语言模型横空出世&#xff0c;极大缓解了这个问题&#xff0c;通过“超大规模无监督语料上的预训练语言模型相对少量的监督样本进…

Docker把容器打包成镜像并提交到harbor仓库

Docker把容器打包成镜像并提交到harbor仓库 如果你想要保存当前容器的状态&#xff0c;就可以通过commit来提交获得一个镜像&#xff0c;就好我们虚拟机的时候创建快照&#xff0c;想要回滚到某一个版本 一、首先创建要给tomcat 的本地容器&#xff0c;镜像指定tomcat-alpine:8…

LeetCode 139. 单词拆分(DP)

1. 题目 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict&#xff0c;判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明&#xff1a; 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1&#xff1a; 输入: s "…

外卖排序系统特征生产框架

背景 图1 外卖排序系统框架 外卖的排序策略是由机器学习模型驱动的&#xff0c;模型迭代效率制约着策略优化效果。如上图所示&#xff0c;在排序系统里&#xff0c;特征是最为基础的部分&#xff1a;有了特征之后&#xff0c;我们离线训练出模型&#xff0c;然后将特征和模型一…

征稿 | “健康知识图谱”投稿通道开启

Data Intelligence正在与语义网国际知名学者Deborah McGuinness以及Oshani Seneviratne等专家一道组织“个人健康知识图谱”专辑。欢迎投稿&#xff01;DI专辑Special Issue on Personal Health Knowledge Graphs This special issue at Data Intelligence Journal seeks origi…

清华提出LogME,无需微调就能衡量预训练模型的下游任务表现!

文 | 游凯超源 | THUML引言在深度学习时代&#xff0c;神经网络的参数量越来越大&#xff0c;从头开始训练(train from scratch)的成本也越来越大。幸运的是&#xff0c;在计算机视觉、自然语言处理等人工智能应用的主要领域&#xff0c;人们能够采用迁移学习的预训练-微调范式…

好的代码标准

需求分析文档需要用精确的数字来描述&#xff0c;避免量变导致质变

LeetCode 140. 单词拆分 II(DP+回溯)

1. 题目 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict&#xff0c;在字符串中增加空格来构建一个句子&#xff0c;使得句子中所有的单词都在词典中。返回所有这些可能的句子。 说明&#xff1a; 分隔时可以重复使用字典中的单词。 你可以假设字典中没有重复的…

论文浅尝|简单高效的知识图谱表示学习负样本采样方法

笔记整理 | 陈名杨&#xff0c;浙江大学在读博士生&#xff0c;主要研究方向为知识图谱表示学习Introduction研究知识图谱表示学习&#xff08;KnowledgeGraph Embedding&#xff09;可以解决当前很多应用的基本问题&#xff0c;这些方法旨在将知识图谱中的实体&#xff08;Ent…

常见性能优化策略的总结

本文要感谢我职级评定过程中的一位评委&#xff0c;他建议把之前所做的各种性能优化的案例和方案加以提炼、总结&#xff0c;以文档的形式沉淀下来&#xff0c;并在内部进行分享。力求达到如下效果&#xff1a; 1. 形成可实践、可借鉴、可参考的各种性能优化的方案以及选型考虑…

微软中山大学开源超强的视觉位置编码,涨点显著

文 | 小马源 | 极市平台1.写在前面由于Transformer对于序列数据进行并行操作&#xff0c;所以序列的位置信息就被忽略了。因此&#xff0c;相对位置编码(Relative position encoding, RPE)是Transformer获取输入序列位置信息的重要方法&#xff0c;RPE在自然语言处理任务中已被…

LeetCode 63. 不同路径 II(DP)

1. 题目 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为“Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为“Finish”&#xff09;。 现在考虑网格中有障碍物。那么从左上角到…

技术动态 | 去中心化知识图谱协作平台建设实践

转载公众号 | DataFunTalk文章作者&#xff1a;Epik 铭识协议出品平台&#xff1a;DataFunTalk导读&#xff1a;1月10日&#xff0c;由EpiK铭识协议主办的“2021开源知识运动”主题活动为业界带来了一场知识图谱开放与互联的智慧盛宴。活动吸引了包括清华大学信息技术研究院副…

权威赛事来了!千言-文本生成评测启动,聚焦NLG技术痛点

自然语言生成是人工智能的重要前沿技术&#xff0c;该技术在落地时会面临一个难题&#xff1a;如何保证模型生成的文本与输入具有事实层面的一致性&#xff0c;即避免生成错误、臆想的信息&#xff1f;为推动相关研究&#xff0c;中国中文信息学会自然语言生成专委会与千言开源…

CRM系统新思维

客户关系管理系统&#xff08;CRM系统&#xff09;是管理公司当前以及未来潜在客户的系统&#xff0c;其主要目的是通过优化客户关系实现公司销售业绩的长期增长&#xff0c;它是企业信息系统的核心之一。目前&#xff0c;移动互联网、大数据以及人工智能技术发展日新月异&…