第一种方法:遍历、时间复杂度为O(n)
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exponent):
# write code here
if exponent < 0:
return 1/ self.Power(base,-exponent)
else:
res = 1 #exponent=0时,结果为1
for i in range(exponent):
res *= base
return res
第二种方法:分治法 O(logn)
# -*- coding:utf-8 -*-
class Solution:
def Power(self, x, n):
# write code here
if n == 0:
return 1.0
elif n < 0:
return 1 / self.Power(x, -n)
else:
if n % 2:
return self.Power(x * x, n // 2) * x
else:
return self.Power(x * x, n // 2)
输入有多少种可能性,一定要细心。