描述
Implement pow(x, n).
分析
- 传统的方式是迭代地乘,这样是O(N)
- 用类似二分的方式可以降为O(logN)
- 大坑是:如果n < 0, 就需要1 / pow(x, -n)
代码
class Solution:
def posPow(self, x, n):
if n == 0:
return 1
if n == 1:
return x
if n % 2 == 0:
return self.myPow(x * x, n // 2)
else:
return self.myPow(x * x, n // 2) * x
def myPow(self, x, n):
if n < 0:
return 1 / self.posPow(x, -n)
else:
return self.posPow(x, n)