Pow(x, n) - Leetcode

来源:互联网 发布:网络优化是做什么的 编辑:程序博客网 时间:2024/05/21 16:58

Implement pow(xn).

-----------

实现X^n,用课本的语言说就是分治法X^n = X^(n/2)*X^(n/2)*X^(n%2);

当n为偶数时,X^n = X^(n/2)*X^(n/2) ,【n%2 ==0】; 

当n为奇数时,X^n = X^(n/2)*X^(n/2)*X,【n%2 ==1】

考虑一下n为负数的情况。

--------------

时间复杂度O(logn),空间复杂度O(1)

public class Solution {    public double pow(double x, int n) {        if(n<0)            return 1.0/powHelper(x, -n);        return powHelper(x,n);    }        public double powHelper(double x, int n){        if(n==0)            return 1.0;        double db=powHelper(x,n/2);        if(n%2 == 0)            return db*db;        return db*db*x;    }}



0 0
原创粉丝点击