解题思路:(与砍竹子II的区别是,这里的竹子长度数量级较小)
数学推导或贪心
切分规则:
等长,且尽量为3
b=0时,pow(3,a)
b=1时,pow(3,a-1)*4 少一段3,并入b生成一个4
b=2时,pow(3,a)*2 乘2就行,少一段3,并入b生成一个5更大
class Solution {
public int cuttingBamboo(int bamboo_len) {
if(bamboo_len <= 3) return bamboo_len - 1;
int a = bamboo_len / 3, b = bamboo_len % 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;
}
}