欢迎光临散文网 会员登陆 & 注册

Leetcode Day5 5

2022-04-05 18:49 作者:我喜欢喝一点点  | 我要投稿

剑指 Offer 16. 数值的整数次方

实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。

虽然但是我还是一开始试试看能不能暴力……

结果……果然还是超时了【悲

不要停下来啊


大佬题解:二分法

也就是x^4=(x^2)^2,若n为奇数,先乘一个x,然后对n进行右移的时候自然就去掉了多出来的1。

class Solution:

    def myPow(self, x: float, n: int) -> float:

        if x==0:return 0

        res=1

        if n<0:

            x=1/x

            n=-n

        while n:

            if n&1:res *=x   #n&1判断奇数偶数

            x *=x

            n>>=1  #右移一位等同于//2

        return res


Leetcode Day5 5的评论 (共 条)

分享到微博请遵守国家法律