实现pow函数(快速幂实现)

思路:每一次计算,我们需要存储 x ^(2/n)的结果;通过这样降低时间复杂度;事项logN的时间复杂度

class Solution {
public:
    double fastPow(double x, long long n) {
        if (n == 0) {
            return 1.0;
        }
        double half = fastPow(x, n / 2);
        if (n % 2 == 0) {
            return half * half;
        } else {
            return half * half * x;
        }
    }
    double myPow(double x, int n) {
        long long N = n;
        if (N < 0) {
            x = 1 / x;
            N = -N;
        }
        return fastPow(x, N);
    }
};

你可能感兴趣的:(leetcode)