[Leetcode]Pow(x, n)

来源:互联网 发布:交换机端口灯不亮 编辑:程序博客网 时间:2024/05/16 08:34

Implement pow(xn).

用二分法~把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


0 0
原创粉丝点击