🗒️343. 整数拆分
2024-12-26
| 2024-12-26
0  |  阅读时长 0 分钟
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;
 

📎 参考

  • 【题单】数学算法
  • 2829. k-avoiding 数组的最小总和866. 回文质数
    Loading...