343. 整数拆分
Posted yuhong1103
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了343. 整数拆分相关的知识,希望对你有一定的参考价值。
1 //以3来进行划分 2 class Solution 3 { 4 public: 5 int integerBreak(int n) 6 { 7 if(n <= 3) return n - 1; //必须切一刀 8 //n >= 5 2*(n-2) > n 3*(n-3) > n 且3*(n-3) >= 2*(n-2) 9 //n = 4 2 * 2 > 1 * 3 10 //2和3不能再分了 分了就变小了 且3优于2 11 int a = n / 3; 12 int b = n % 3; 13 if(b == 0) 14 { 15 //全部分成3 16 return pow(3, a); 17 } 18 if(b == 1) 19 { 20 //n = 10 3 * 3 * 3 * 1 ==> 3 * 3 * 2 * 2 21 //4 1 和 3 要变成2 * 2 22 return pow(3, a-1) * 4; 23 } 24 //b == 2 2不能再分了 25 return pow(3, a) * 2; 26 } 27 };
以上是关于343. 整数拆分的主要内容,如果未能解决你的问题,请参考以下文章
代码随想录算法训练营第四十一天 | 343.整数拆分96.不同的二叉搜索树
代码随想录算法训练营第四十一天| 343. 整数拆分 96.不同的二叉搜索树