整数拆分——力扣343

文章目录

      • 题目描述
      • [法一 动态规划](#法一 动态规划)
      • [法二 动态规划优化](#法二 动态规划优化)
      • [法三 数学](#法三 数学)

题目描述

法一 动态规划

cpp 复制代码
int integerBreak(int n) {
		vector<int> dp(n+1);
		for(int i=2;i<=n;i++){
			int curMax = 0;
			for(int j=1;j<i;j++){
				curMax = max(curMax, max(j*(i-j), j*dp[i-j]));
			}
			dp[i] = curMax;
		} 
		return dp[n];
	}

法二 动态规划优化

cpp 复制代码
int integerBreak(int n){
		if(n<=3){
			return n-1;
		}	
		vector<int> dp(n+1);
		dp[2]=1;
		for(int i=3;i<=n;i++){
			dp[i] = max(max(2*(i-2), 2*dp[i-2]), max(3*(i-3), 3*dp[i-3]));
		}
		return dp[n];
	}

法三 数学

cpp 复制代码
int integerBreak(int n){
		if(n<=3){
			return n-1;
		}
		int chu = n/3, mod = n%3;
		if(mod==0){
			return (int)pow(3, chu);
		} else if(mod==1){
			return (int)pow(3, chu-1)*4;
		} else {
			return (int)pow(3, chu)*2;
		}
	}
相关推荐
侯孟禹几秒前
C++ 新特性
c++
Amor风信子4 分钟前
【力扣】2376. 统计特殊整数
算法·leetcode·职场和发展
极客小张5 分钟前
基于正点原子Linux开发板的智能监控与家电控制系统设计:深度解析Video4Linux和TCP/IP技术栈
linux·运维·c++·物联网·网络协议·tcp/ip·算法
JustCouvrir1 小时前
代码随想录算法训练营Day5
算法
周哈里窗的编程2 小时前
CSP-CCF★201912-2回收站选址★
c++·算法·图论
SpongeG3 小时前
数据结构第三周做题总结_链表
数据结构·算法·链表
everyStudy3 小时前
前端五种排序
前端·算法·排序算法
小珑也要变强3 小时前
队列基础概念
c语言·开发语言·数据结构·物联网
醉竺3 小时前
【高阶数据结构】二叉搜索树的插入、删除和查找(精美图解+完整代码)
数据结构
未来可期LJ4 小时前
【C++ 设计模式】单例模式的两种懒汉式和饿汉式
c++·单例模式·设计模式