【leetcode 快速幂 C++】【剑指 Offer】 14- II. 剪绳子 II

本文提供了一种解决剑指Offer面试题中剪绳子II问题的高效算法实现。通过分析不同情况下最优解的规律,利用快速幂运算优化计算过程,实现了在给定长度下获取通过剪绳得到的最大乘积的方法。适用于准备算法面试和技术提升的学习者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

剑指 Offer 14- II. 剪绳子 II

在这里插入图片描述

class Solution {
public:
    const int mod = 1e9+7;
    int myPow(long long x, int N) {
        long long ans = 1;
        while(N) {
            if(N & 1) ans = (ans * x) % mod;
            x = (x * x) % mod;
            N >>= 1;
        }
        return ans;
    }
    int cuttingRope(int n) {
        if(n <= 3) return n - 1;
        if(n == 4) return 4;
        int N = n / 3;
        if(n % 3 == 1) N--;
        long long ans = myPow(3, N);
        if(n % 3 == 2) ans *= 2; 
        else if(n % 3 == 1) ans = ans * 4;
        return (int)(ans % mod);
    }
};

在这里插入图片描述

class Solution {
public:
    const int mod = 1e9+7;
    int myPow(int x, int N) {
        if(N == 0) return 1;
        long long temp = 0;
        if(N % 2) {
            temp = myPow(x, N - 1);
            return (temp * x) % mod;
        }
        temp = myPow(x, N / 2);
        return (temp * temp) % mod;
    }
    int cuttingRope(int n) {
        if(n <= 3) return n - 1;
        if(n == 4) return 4;
        long long ans = 3;
        int N = n / 3;
        if(n % 3 == 1) N--;
        ans = myPow(3, N);
        if(n % 3 == 2) ans *= 2; 
        else if(n % 3 == 1) ans = ans * 4;
        return (int)(ans % mod);
    }
};

在这里插入图片描述

class Solution {
public:
    const int mod = 1e9+7;
    int cuttingRope(int n) {
        if(n <= 3) return n - 1;
        if(n == 4) return 4;
        long long ans = 1;
        int N = n / 3;
        if(n % 3 == 1) N--;
        for(int ii = 0; ii < N; ii++) ans = (ans * 3) % mod;
        if(n % 3 == 2) ans *= 2; 
        else if(n % 3 == 1) ans = ans * 4;
        return (int)(ans % mod);
    }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值