您的位置:首页 > 职场人生

[LeetCode] Pow(x, n)

2013-01-27 22:43 567 查看
class Solution {
public:
double pow(double x, int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if (n == 0) return 1;
if (n == 1) return x;

bool div = false;
bool neg = false;

if (n < 0) {
div = true;
n = -n;
}

if (x < 0) {
neg = n % 2;
x = -x;
}

double p = pow(x, n / 2);

double ret = n % 2 ? p * p * x : p * p;

if (div) ret = 1 / ret;
if (neg) ret = -ret;

return ret;
}
};


Small Case: 16ms

Large Case: 28ms

Time: O(lgn)

Space: O(1)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息