题目链接:点击打开链接
题目大意:略
解题思路

最优: 3 。把绳子尽可能切为多个长度为 3 的片段,留下的最后一段绳子的长度可能为 0,1,2 三种情况
次优: 2 。若最后一段绳子长度为 2 ;则保留,不再拆为 1+1
最差: 1 。若最后一段绳子长度为 1 ;则应把一份 3+1 替换为 2+2,因为 2 * 2 > 3×1
最后一种贪心思想可以理解为数学归纳法
相关企业
AC 代码
- class Solution {
- public int integerBreak(int n) {
- if(n <= 3) return n - 1;
- int a = n / 3, b = n % 3;
- if(b == 0) return (int)Math.pow(3, a);
- if(b == 1) return (int)Math.pow(3, a - 1) * 4;
- return (int)Math.pow(3, a) * 2;
- }
- }
- class Solution {
- public:
- int integerBreak(int n) {
- if(n <= 3) return n - 1;
- int a = n / 3, b = n % 3;
- if(b == 0) return pow(3, a);
- if(b == 1) return pow(3, a - 1) * 4;
- return pow(3, a) * 2;
- }
- };