Solution:
We can do this problem in O(log n) by applying $X^n =X^{n/2}\cdot X^{n/2}$ or $X^n =X^{(n-1)/2}\cdot X^{(n-1)/2} \cdot X$ if $n$ is odd.public class Solution { public double pow(double x, int n) { if(x==1 || x==0) return x; if(x==-1) return (n%2)==0?1:-1; if (n==0) return 1; if (n==1) return x; if(n<0) return 1/pow(x,-n); double val = pow(x,n/2); return (n%2)==0 ? val*val : val*val*x; } }
No comments :
Post a Comment