链接
https://leetcode-cn.com/problems/shu-zhi-de-zheng-shu-ci-fang-lcof/
耗时
解题:6 min
题解:6 min
题意
实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。
注意:本题与主站 50 题相同:https://leetcode-cn.com/problems/powx-n/
提示:
- -100.0 < x < 100.0
-
−
2
31
<
=
n
<
=
2
31
−
1
-2^{31} <= n <= 2^{31}-1
−231<=n<=231−1
-
−
1
0
4
<
=
x
n
<
=
1
0
4
-10^4 <= xn <= 10^4
−104<=xn<=104
思路
幂次可以为负的快速幂,特判一下就好了。
时间复杂度:
O
(
l
o
g
n
)
O(logn)
O(logn)
AC代码
class Solution {
public:
double myPow(double x, int n) {
if(x == 1 || n == 0) return 1;
long long lln = n;
bool isdiv = false;
if(lln < 0) {
isdiv = true;
lln = -lln;
}
double ans = 1;
while(lln) {
if(lln&1) ans *= x;
x *= x;
lln >>= 1;
}
return isdiv ? 1/ans : ans;
}
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)