题目

https://leetcode.com/problems/integer-break/

题解

一开始以为,只要是 3 个数相加就可以,于是在错误的方向上越走越远:

后来发现并不只是 3 个数,此方案不可行。

好在官方提供了 Hint。实际上,看了 Hint 之后,这道题虽然 AC 了,但我并没有真正搞明白原理,只是找到了表面上的规律。

找规律的过程草稿:

class Solution {public int integerBreak(int n) {if (n == 2) return 1;if (n == 3) return 2;int pow2 = getPow2(n);int pow3 = getPow3(n);return (int) (Math.pow(2, pow2) * Math.pow(3, pow3));}public int getPow2(int n) {if (n % 3 == 1) return 2;else if (n % 3 == 2) return 1;else return 0;}public int getPow3(int n) {if (n % 3 == 0) return n / 3;else if (n % 3 == 1) return (n - 1) / 3 - 1;else return (n - 2) / 3;}
}

还是看评论区大佬的题解吧。

海外版:Why factor 2 or 3? The math behind this problem.,证明了因子只能是2或3
国内版:整数拆分(动态规划),有高考数学最后一题的感觉…

leetcode 343. Integer Break | 343. 整数拆分(Java)相关推荐

  1. LeetCode(13.罗马数字转整数) JAVA Hashmap

    LeetCode(13.罗马数字转整数) JAVA Hashmap 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D ...

  2. LeetCode题解 343.Integer Break

    题目:Given a positive integer n, break it into the sum of at least two positive integers and maximize ...

  3. LeetCode 343. Integer Break

    题目: Given a positive integer n, break it into the sum of at least two positive integers and maximize ...

  4. 343. Integer Break

    给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获得的最大乘积. 示例 1: 输入: 2 输出: 1 解释: 2 = 1 + 1, 1 × 1 = 1. 示例 ...

  5. leetcode 397. Integer Replacement | 397. 整数替换(动态规划,记忆化搜搜)

    题目 https://leetcode.com/problems/integer-replacement/ 题解 一开始写了个 dp,结果因为大数组 OOM 了. dp 数组需要计算每一个值,有的值是 ...

  6. leetcode 139. Word Break | 139. 单词拆分(动态规划)

    题目 https://leetcode.com/problems/word-break/ 题解 时隔一天,再次遇到 dp 问题- 本题和 leetcode 375. Guess Number High ...

  7. [leetcode] Reverse Integer 反转一个整数

    Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 题目大意:略.需 ...

  8. HDU4658 Integer Partition(整数拆分+判断相同数)

    题意:将n划分为最大值不超过n的若干个数之和,每个数最多出现m-1次.问有多少种方案? #include <iostream> #include <cstdio> #inclu ...

  9. 【LeetCode】Integer Break

    这道题我是按照数学的思路进行分析的. 数学感觉上很容易觉得,需要把数字分成相等的几部分,例如(6最好分成(3,3),或者(2,2,2)).</p><p>为什么这么分,以为如果分 ...

最新文章

  1. session传递参数_分布式 Session 之 Spring Session 架构与设计
  2. DOM对象和内置对象(中)
  3. C语言中将绝对地址转换为函数指针以及跳转到内存指定位置处执行的技巧
  4. C#与java的比较
  5. CocoaPods的安装[转载]
  6. FreeRTOS系列第2篇---FreeRTOS入门指南
  7. Python基础(三)深浅拷贝、函数、文件处理、三元运算、递归、冒泡排序
  8. 二叉线索树的先序、中序、后序的线索化及其遍历
  9. ArrayList源码解析(JDK1.8)
  10. uint32_t 大小端转换
  11. MMKV_Android数据持久化方案调研-MMKV SP REALM ROOM WCDB...
  12. RK3568平台开发系列讲解(安卓篇)PackageInstaller(应用安装)流程介绍
  13. 计算机就业前景调查报告问题,计算机专业就业前景调查报告.docx
  14. nginxconsul
  15. 简体和繁体之间的转换
  16. 简单记录一下雨量计的分类
  17. 计算机键盘不亮,电脑键盘失灵指示灯不亮怎么办
  18. Java程序员的薪资取决于年限还是技术?
  19. 【已解决】阿里云网站备案流程,万网网站备案,公司网站备案被注销了怎么办?
  20. 贝叶斯软件genle教程_贝叶斯网络可视化软件GeNIe使用说明

热门文章

  1. select隐藏_数仓|几种SQL隐藏的错误,你遇到过吗?
  2. amd处理器更新zen4服务器芯片,AMD更新CPU、GPU路线图:Zen4架构与硬件光追可期
  3. OD的 CC断点,内存访问断点,硬件断点 解析
  4. 0_0 SimpleFactoryMode 简单工厂模式
  5. 自媒体时代的贤内助——AI 视频云
  6. 全球编程语言薪资排行榜,Java竟然垫底!!!
  7. 聊一聊Kafka分区的隐藏属性——二次归类
  8. Go 内存对齐的那些事儿
  9. 【LiveVideoStack线上分享】— FreeSWITCH核心架构与流程控制
  10. LiveVideoStack线上分享第四季(十):图像视频降噪的现在与未来——从经典方法到深度学习...