Thought:
Divide and Conquer.
Code:
public class Solution {
public double pow(double x, int n) {
boolean isNeg = false;
if (n < 0) {
n = - n;
isNeg = true;
}
return isNeg ? 1 / helper(x, n): helper(x, n);
}
public double helper(double x, int n) {
if (n == 0) return 1;
double result = pow(x, n / 2);
if (n % 2 == 0) return result * result;
return result * result * x;
}
}
No comments:
Post a Comment