跳到主要内容

Pow(x,n)

描述

Implement pow(x, n).

分析

二分法,xn=xn/2×xn/2×xn%2x^n = x^{n/2} \times x^{n/2} \times x^{n\%2}

代码

# Pow(x, n)
# 二分法,$x^n = x^{n/2} * x^{n/2} * x^{n\%2}$
# 时间复杂度O(logn),空间复杂度O(1)
class Solution:
def myPow(self, x: float, n: int) -> float:
if n < 0:
return 1.0 / self.power(x, -n)
else:
return self.power(x, n)

def power(self, x: float, n: int) -> float:
if n == 0:
return 1
v = self.power(x, n // 2)
if n % 2 == 0:
return v * v
else:
return v * v * x

相关题目