type
status
date
slug
summary
tags
category
icon
password
创建时间
Dec 26, 2024 03:02 AM
给定一个正整数
n
,将其拆分为 k
个 正整数 的和( k >= 2
),并使这些整数的乘积最大化。返回 你可以获得的最大乘积 。
数学法
根据数学知识,我们知道靠近自然常数 e 的数增长最快,而最靠近自然常数 e 的整数有 2 和 3。3 是最靠近 e 的,优先找分解为 3 的和。因此,对 3 的余数讨论:
- 余数为 0,不讨论,正好 m 个 3;
- 余数为 1,少一个 3,变为两个 2,即 1 * 3 < 2 * 2;
- 余数为 2,直接使用。
除此之外,还要考虑特殊情况。当 n = 2 或者 n = 3 时,按照题目要起,需要拆分为最少两个数之和
- 2 :1 + 1, 1 * 1 = 1;
- 3 :1 + 2, 1 * 2 = 2 或者 1 + 1 + 1 ,1 * 1 * 1 = 1;
📎 参考
- 无