๐ŸŒ•๐ŸŒ— ๅ‰‘ๆŒ‡ Offer 14- II. ๅ‰ช็ปณๅญ II

ๅžไฝ›็ซฅๅญ2022ๅนด10ๆœˆ10ๆ—ฅ
  • algorithm
  • ๆ‰พ่ง„ๅพ‹
  • ๅฟซ้€Ÿๅน‚
  • dp
ๅฐไบŽ 1 ๅˆ†้’Ÿ

๐ŸŒ•๐ŸŒ— ๅ‰‘ๆŒ‡ Offer 14- II. ๅ‰ช็ปณๅญ II

้šพๅบฆ: ๐ŸŒ•๐ŸŒ—

๐ŸŒ— ๐ŸŒ•

้—ฎ้ข˜ๆ่ฟฐ

img_27.png


่งฃๆณ•

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;
    }
}

่พ“ๅ‡บ

img_26.png

ไธŠๆฌก็ผ–่พ‘ไบŽ: 2022/10/10 ไธ‹ๅˆ8:43:48
่ดก็Œฎ่€…: liuxianzhishou