题目:https://oj.leetcode.com/problems/powx-n/
Implement pow(x, n).
分析:二分法
源码:Java版本
算法分析:时间复杂度O(logn),空间复杂度O(1)
public class Solution {
public double pow(double x, int n) {
if(n<0) {
return 1/power(x, -n);
}else {
return power(x, n);
}
}
private double power(double x, int n) {
if(n==0) {
return 1.0d;
}
if(n==1) {
return x;
}
double result=power(x,n/2);
if((n&1)==0) {
return result*result;
}else {
return x*result*result;
}
}
}