您的位置:首页 > 其它

Pow(x, n) - Leetcode

2015-02-05 05:24 302 查看
Implement pow(x, n).

-----------

实现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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: