๐๐ ๅๆ Offer 14- II. ๅช็ปณๅญ II
2022ๅนด10ๆ10ๆฅ
- algorithm
๐๐ ๅๆ Offer 14- II. ๅช็ปณๅญ II
้พๅบฆ: ๐๐
๐ ๐
้ฎ้ขๆ่ฟฐ
่งฃๆณ
class Solution {
public int cuttingRope(int n) {
// ๆ่ทฏ๏ผ
// ็ป้ชๅ
ฌๅผ
if(n == 2) {
return 1;
}
if(n == 3) {
return 2;
}
int count = n / 3;
int lef = n % 3;
if(lef == 0) {
return mySol(count, 1);
} else if(lef == 1) {
return mySol(count - 1, 4);
} else {
return mySol(count, 2);
}
}
// ๅฟซ้ๅนๆฑ 3^n
private int mySol(int n, int ext) {
long res = 1;
long cur = 3; // ๅๅงๅผ๏ผๅผ == 3^x ๅฝๅ่ฝฎ
while(n != 0) {
if(n % 2 == 1) {
res = (res * cur) % 1000000007;
}
cur = (cur * cur) % 1000000007;
n /= 2;
}
res = (res * ext) % 1000000007;
return (int)res;
}
}