50. Pow(x, n)

题目:

Implement pow(xn).

链接: http://leetcode.com/problems/powx-n/

题解:

使用二分法求实数幂,假如不建立临时变量halfPow,直接return计算结果的话会超时,还没仔细研究为什么。  

Time Complexity - O(logn), Space Complexity - O(1)。

public class Solution {

    public double myPow(double x, int n) {

        if(x == 0)

            return x;

        if(n == 0)

            return 1;

        double halfPow = myPow(x, n / 2), result;

        if(n % 2 == 0)

            result = halfPow * halfPow;

        else if (n > 0)

            result = halfPow * halfPow * x;

        else

            result = halfPow * halfPow / x;

        return result;

    }

}

测试:

Reference:

blog.csdn.net/linhuanmars/article/details/20092829

你可能感兴趣的:(po)