Implement pow(x, n).
用二分法~把x的n次方划分成两个x的n/2次方相乘,然后递归求解~注意n为负数的情况~代码复杂度为O(logn)~ 还可以加上越界的判断~
class Solution:
# @param x, a float
# @param n, a integer
# @return a float
def pow(self, x, n):
if n == 0: return 1
if n < 0:
return self.pow(1.0/x, -n)
half = self.pow(x, n >> 1)
half *= half
if n % 2 == 1:
half *= x
return half

本文介绍了一种使用二分法快速计算x的n次方的方法,该方法通过将问题分解为较小规模的相同问题来降低计算复杂度。适用于正整数和负整数指数的情况,并考虑了边界条件。
292

被折叠的 条评论
为什么被折叠?



